Java Collections
框架的Set
接口提供Java中数学集的功能。它扩展了Collection
接口。
与List
接口不同,集合不能包含重复的元素。
实现Set的类
由于Set
是接口,因此我们无法从中创建对象。
为了使用Set
接口的功能,我们可以使用以下类:
- 哈希集
- 链接哈希集
- 枚举集
- 树集
这些类在Collections
框架中定义,并实现Set
接口。
扩展Set的接口
这些子接口还扩展了Set
接口:
- SortedSet
- 导航集
如何使用Set?
在Java中,必须导入java.util.Set
包才能使用Set
。
// Set implementation using HashSet
Set animals = new HashSet<>();
在这里,我们创建了一个名为动物的Set
。我们已经使用HashSet
类来实现Set
接口。
设置方法
Set
接口包含Collection
接口的所有方法。这是因为Collection
是Set
的超级接口。
Set
接口中还提供了Collection
接口的一些常用方法:
- add() -将指定的元素添加到集合中
- addAll() -将指定集合的所有元素添加到集合中
- iterator() -返回一个迭代器,该迭代器可用于顺序访问集合中的元素
- remove() -从集合中移除指定的元素
- removeAll() -从存在于另一个指定集合中的集合中删除所有元素
- keepAll() -保留集合中所有还存在于另一个指定集合中的所有元素
- clear() -从集合中删除所有元素
- size() -返回集合的长度(元素个数)
- toArray() -返回包含集合中所有元素的数组
- contains() -如果集合包含指定的元素,则返回
true
- containsAll() -如果集合包含指定集合的所有元素,则返回
true
- hashCode() -返回哈希码值(集合中元素的地址)
要了解Set
接口的更多方法,请访问Java Set(Java官方文档)。
设定作业
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 class
Set set1 = new HashSet<>();
// Add elements to the set1
set1.add(2);
set1.add(3);
System.out.println("Set1: " + set1);
// Creating another set using the HashSet class
Set set2 = new HashSet<>();
// Add elements
set2.add(1);
set2.add(2);
System.out.println("Set2: " + set2);
// Union of two sets
set2.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 class
Set numbers = new TreeSet<>();
// Add elements to the set
numbers.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 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
等类中看到其实现。