Java中的Set
是一个接口,它实现了Collection
接口。Set
的主要功能是存储不重复的元素。以下是Set
的一些主要功能:
add()
方法向集合中添加一个元素。如果元素已经存在,则不会添加。Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("apple"); // 不会添加,因为已经存在
remove()
方法从集合中删除一个元素。如果元素不存在,则不会报错。set.remove("apple");
contains()
方法检查集合中是否包含某个元素。boolean containsApple = set.contains("apple"); // true
size()
方法获取集合中元素的个数。int size = set.size(); // 2
clear()
方法清空集合中的所有元素。set.clear();
// 使用迭代器
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// 使用增强型for循环
for (String element : set) {
System.out.println(element);
}
isEmpty()
方法判断集合是否为空。boolean isEmpty = set.isEmpty(); // false
containsAll()
方法判断集合是否包含另一个集合中的所有元素。Set<String> anotherSet = new HashSet<>();
anotherSet.add("apple");
anotherSet.add("banana");
boolean containsAll = set.containsAll(anotherSet); // true
retainAll()
方法保留集合中另一个集合的所有元素,不包含的元素将被删除。Set<String> anotherSet = new HashSet<>();
anotherSet.add("apple");
anotherSet.add("orange");
set.retainAll(anotherSet); // set 现在只包含 "apple"
subSet()
、headSet()
和tailSet()
方法遍历集合的子集。Set<String> subSet = set.subSet("a", "c"); // 包含 "apple" 和 "banana"
Set<String> headSet = set.headSet("b"); // 包含 "apple"
Set<String> tailSet = set.tailSet("b"); // 包含 "banana"
这些功能使得Set
接口在Java中非常有用,特别是在需要存储不重复元素的场景中。常见的Set
实现类有HashSet
、LinkedHashSet
和TreeSet
等。