Java Set 接口
在本教程中,我们将学习Java中的Set接口及其方法。
Java Collections框架的Set接口提供Java中数学集合的功能。 它继承了Collection接口。
与List接口不同,Set集合不能包含重复的元素。
实现Set的类
由于Set是接口,因此无法从中创建对象。
为了使用Set接口的功能,我们可以使用以下类:
这些类在Collections框架中定义并实现Set接口。
继承Set的接口
该Set接口也扩展这些子接口:
如何使用Set?
在Java中,必须导入java.util.Set包才能使用Set。
//使用HashSet实现SetSet<String>animals=newHashSet<>();
在这里,我们创建了一个Set称为animals。我们已经使用HashSet该类来实现Set接口。
Set的方法
Set接口包含Collection接口的所有方法。 这是因为Collection是Set的超级接口。
Set接口中还提供了Collection接口的一些常用方法:
add() - 将指定的元素添加到集合中
addAll() - 将指定集合的所有元素添加到集合中
iterator() -返回一个迭代器,该迭代器可用于顺序访问集合中的元素
remove() - 从集合中移除指定的元素
removeAll() - 从存在于另一个指定集合中的集合中删除所有元素
keepAll() -保留集合中所有还存在于另一个指定集合中的所有元素
clear() - 从集合中删除所有元素
size() - 返回集合的长度(元素数)
toArray() - 返回包含集合中所有元素的数组
contains() - 如果集合包含指定的元素,则返回true
containsAll() - 如果集合包含指定集合的所有元素,则返回true
hashCode() -返回哈希码值(集合中元素的地址)
Set集合运算
Java Set接口允许我们执行基本的数学集合运算,例如并集,交集和子集。
Union - 为了得到两个集合x和y的并集,我们可以使用x.addAll(y)
Intersection - 要获得两个集合x和y的交集,我们可以使用x.retainAll(y)
Subset - 要检查x是否是y的子集,我们可以使用y.containsAll(x)
Set接口的实现
1.实现HashSet类
importjava.util.Set;importjava.util.HashSet;classMain{publicstaticvoidmain(String[]args){//使用HashSet类创建集合Set<Integer>set1=newHashSet<>();//将元素添加到set1set1.add(2);set1.add(3);System.out.println("Set1:"+set1);//使用HashSet类创建另一个集合Set<Integer>set2=newHashSet<>();//添加元素set2.add(1);set2.add(2);System.out.println("Set2:"+set2);//两个集合的并集set2.addAll(set1);System.out.println("并集是:"+set2);}}
输出结果
Set1:[2,3]Set2:[1,2]并集是:[1,2,3]
要了解更多信息HashSet,请访问Java HashSet。
2.实现TreeSet类
importjava.util.Set;importjava.util.TreeSet;importjava.util.Iterator;classMain{publicstaticvoidmain(String[]args){//使用TreeSet类创建集合Set<Integer>numbers=newTreeSet<>();//将元素添加到set集合numbers.add(2);numbers.add(3);numbers.add(1);System.out.println("TreeSet:"+numbers);//使用iterator()访问元素System.out.print("使用iterator()访问元素:");Iterator<Integer>iterate=numbers.iterator();while(iterate.hasNext()){System.out.print(iterate.next());System.out.print(",");}}}
输出结果
TreeSet:[1,2,3]使用iterator()访问元素:1,2,3,
要了解更多信息TreeSet,请访问Java TreeSet。
现在我们知道Set是什么,在接下来的教程中,我们将在EnumSet,HashSet,LinkedHashSet和TreeSet等类中看到其实现。