在本教程中,我们将学习 Java 中的Set接口及其方法。
Java Collections框架的Set接口提供 Java 中数学集的功能。 它扩展了Collection接口。
与List接口不同,集合不能包含重复的元素。
实现Set的类
由于Set是一个接口,因此我们无法从中创建对象。
为了使用Set接口的功能,我们可以使用以下类:
这些类在Collections框架中定义,并实现Set接口。

扩展Set的接口
Set接口还通过以下子接口扩展:

如何使用Set?
在 Java 中,必须导入java.util.Set包才能使用Set。
// Set implementation using HashSetSet<String> animals = new HashSet<>();
在这里,我们创建了一个名为Animal的Set。 我们已经使用HashSet类来实现Set接口。
Set方法
Set接口包含Collection接口的所有方法。 这是因为Collection是Set的超级接口。
Set接口中还提供了Collection接口的一些常用方法:
add()- 将指定的元素添加到集合中addAll()- 将指定集合的所有元素添加到集合中iterator()- 返回一个迭代器,该迭代器可用于顺序访问集合中的元素remove()- 从集合中移除指定的元素removeAll()- 从另一个指定集合中存在的集合中删除所有元素keepAll()- 保留集合中所有还存在于另一个指定集合中的所有元素clear()- 从集合中删除所有元素size()- 返回集合的长度(元质数)toArray()- 返回包含集合中所有元素的数组contains()- 如果集合包含指定的元素,则返回truecontainsAll()- 如果集合包含指定集合的所有元素,则返回truehashCode()- 返回哈希码值(集合中元素的地址)
要了解Set接口的更多方法,请访问 Java Set(Java 官方文档)。
Set操作
Java Set接口允许我们执行基本的数学集合运算,例如并集,交集和子集。
- 并集 - 要获得两组
x和y的联合,我们可以使用x.addAll(y) - 交集 - 要获得两组
x和y的交集,我们可以使用x.retainAll(y) - 子集 - 检查
x是否是y的子集,我们可以使用y.containsAll(x)
Set接口的实现
1.HashSet实现类
import java.util.Set;import java.util.HashSet;class Main {public static void main(String[] args) {// Creating a set using the HashSet classSet<Integer> set1 = new HashSet<>();// Add elements to the set1set1.add(2);set1.add(3);System.out.println("Set1: " + set1);// Creating another set using the HashSet classSet<Integer> set2 = new HashSet<>();// Add elementsset2.add(1);set2.add(2);System.out.println("Set2: " + set2);// Union of two setsset2.addAll(set1);System.out.println("Union is: " + set2);}}
输出
Set1: [2, 3]Set2: [1, 2]Union is: [1, 2, 3]
要了解有关HashSet的更多信息,请访问 Java HashSet 。
2.TreeSet实现类
import java.util.Set;import java.util.TreeSet;import java.util.Iterator;class Main {public static void main(String[] args) {// Creating a set using the TreeSet classSet<Integer> numbers = new TreeSet<>();// Add elements to the setnumbers.add(2);numbers.add(3);numbers.add(1);System.out.println("Set using TreeSet: " + numbers);// Access Elements using iterator()System.out.print("Accessing elements using iterator(): ");Iterator<Integer> iterate = numbers.iterator();while(iterate.hasNext()) {System.out.print(iterate.next());System.out.print(", ");}}}
输出:
Set using TreeSet: [1, 2, 3]Accessing elements using iterator(): 1, 2, 3,
要了解有关TreeSet的更多信息,请访问 Java TreeSet 。
现在我们知道了Set是什么,我们将在接下来的教程中在EnumSet,HashSet,LinkedHashSet和TreeSet等类中看到其实现。
