栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

26.集合框架-Set接口及其子类(2)[20220727]

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

26.集合框架-Set接口及其子类(2)[20220727]

Collection接口之下有两个子接口:List接口/Set接口

Set接口及其子类

Set接口是用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
HashSet类--用来处理无序的单列数据,没有重复的元素,重复的元素算一个。
LinkedHashSet类HashSet类的子类

HashSet类

HashSet是Set接口最常用的实现类,底层数据结构是哈希表,HashSet不保证元素的顺序但保证元素必须唯一。

HashSet类构造方法:
HashSet() 构造一个新的空集合; 默认初始容量(16)和负载因子(0.75)。 
HashSet(Collection c) 构造一个包含指定集合中的元素的新集合。 
HashSet(int initialCapacity) 构造一个新的空集合; 具有指定的初始容量和默认负载因子(0.75)。 
HashSet(int initialCapacity, float loadFactor) 具有指定的初始容量和指定的负载因子。 

package com.wangxing.test1;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;

public class TestHashSetClass {

	public static void main(String[] args) {
		//HashSet--java类--实现了Set接口
		//HashSet的构造方法
		//HashSet() 构造一个新的空集合; 默认初始容量(16)和负载因子(0.75)。 
		HashSet  hashset1=new HashSet();
		Set  set1=new HashSet();
		//HashSet(Collection c) 将实现Conllection接口的子类转换成HashSet接口。
		ArrayList  arrayList=new ArrayList();
		HashSet  hashset2=new HashSet(arrayList);
		Set  set2=new HashSet(arrayList);
		//HashSet(int initialCapacity) 构造一个新的空集合; 具有指定的初始容量和默认负载因子(0.75)。 
		HashSet  hashset3=new HashSet(26);
		Set  set3=new HashSet(26);
		//HashSet(int initialCapacity, float loadFactor) 具有指定的初始容量和指定的负载因子。 
		HashSet  hashet4=new HashSet(30,0.5f);
		Set  set4=new HashSet(30,0.5f);
	}

}

HashSet类实例方法
boolean    add(Object e) 将指定的元素添加到此集合(如果尚未存在)。 
void    clear() 从此集合中删除所有元素。 
boolean    contains(Object o) 如果此集合包含指定的元素,则返回 true 。 
boolean    isEmpty() 如果此集合不包含元素,则返回 true 。 
Iterator    iterator() 返回此集合中元素的迭代器。 
boolean    remove(Object o) 如果存在,则从该集合中删除指定的元素。 
int    size() 返回此集合中的元素数(其基数)。 

package com.wangxing.test1;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
public class TestHashSetClass2 {
	public static void main(String[] args) {
		HashSet  hashset=new HashSet();
		//HashSet类中的常用实例方法
		//boolean	add(Object e) 将指定的元素添加到此集合(如果尚未存在)。 
		hashset.add("hello");
		hashset.add(true);
		hashset.add(12.5);
		hashset.add("hello");
		hashset.add(1234);
		//int	size() 返回此集合中的元素数(其基数)。 
		System.out.println("size=="+hashset.size());
		//boolean	contains(Object o) 如果此集合包含指定的元素,则返回 true 。
		System.out.println("contains=="+hashset.contains("hello"));
		//boolean	remove(Object o) 如果存在,则从该集合中删除指定的元素。
		//hashset.remove("hello");
		//System.out.println("size=="+hashset.size());
		//void	clear() 从此集合中删除所有元素。 
		//hashset.clear();
		//boolean	isEmpty() 如果此集合不包含元素,则返回 true 。  
		//System.out.println("isEmpty=="+hashset.isEmpty());
		
		//遍历HashSet无序集合
		//HashSet无序集合不能使用普通的for循环,因为HashSet中没有与位置相关的操作方法
		//普通的for需要get(int  index)方法,HashSet无序集合中没有这个方法
		//因此不能使用普通的for循环遍历HashSet
		//如果一定要使用普通的for循环遍历HashSet的无序集合?
		//可以使用ArrayList/LinkedList的构造方法,将HashSet这个无序集合转换成有序集合
		ArrayList  arraylist=new ArrayList(hashset);
		for(int  i=0;i
LikedHashSet类

LikedHashSet类是HashSet类的子类

LinkedHashSet也是Set接口的实现类,底层数据结构是链表和哈希表,哈希表用来保证元素唯一,链表用来保证元素的插入顺序,即FIFO(First Input First Output 先进先出)。

LikedHashSet类构造方法:
LikedHashSet() 构造一个新的空集合; 默认初始容量(16)和负载因子(0.75)。 
LikedHashSet(Collection c) 构造一个包含指定集合中的元素的新集合。 
LikedHashSet(int initialCapacity) 构造一个新的空集合; 具有指定的初始容量和默认负载因子(0.75)。 
LikedHashSet(int initialCapacity, float loadFactor) 具有指定的初始容量和指定的负载因子。 

LikedHashSet类实例方法
boolean    add(Object e) 将指定的元素添加到此集合(如果尚未存在)。 
void    clear() 从此集合中删除所有元素。 
boolean    contains(Object o) 如果此集合包含指定的元素,则返回 true 。 
boolean    isEmpty() 如果此集合不包含元素,则返回 true 。 
Iterator    iterator() 返回此集合中元素的迭代器。 
boolean    remove(Object o) 如果存在,则从该集合中删除指定的元素。 
int    size() 返回此集合中的元素数(其基数)。

LikedHashSet类是HashSet类的子类,在构造方法和实例方法的使用是相似的因为此处就不用继续提供代码操作。

LinkedHashSet与HashSet区别?

 HashSet是Set接口最常用的实现类,底层数据结构是哈希表,HashSet不保证元素的顺序但保证元素必须唯一。
LinkedHashSet也是Set接口的实现类,底层数据结构是链表和哈希表,哈希表用来保证元素唯一,链表用来保证元素的插入顺序,即FIFO(First Input First Output 先进先出)。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1030842.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号