以下是对 Java 中的 Set 接口中一些常用方法的介绍,并给出了相应的代码示例:
添加元素
boolean add(E e):向集合中添加指定的元素。如果该元素尚未存在于集合中,则添加它,并返回 true。如果集合已包含该元素,则添加操作不会改变集合,并返回 false。
java
Set<String> set = new HashSet<>();
boolean added = set.add("apple"); // 添加元素"apple"
System.out.println("Element added: " + added); // 输出: Element added: true
boolean addAll(Collection<? extends E> c):将指定集合中的所有元素添加到此集合中。成功则返回 true。
java
Set<String> set1 = new HashSet<>();
set1.add("apple");
Set<String> set2 = new HashSet<>();
set2.add("banana");
set2.add("cherry");
boolean allAdded = set1.addAll(set2); // 将set2的所有元素添加到set1中
System.out.println("All elements added: " + allAdded); // 输出: All elements added: true
System.out.println(set1); // 输出: [apple, banana, cherry]
移除元素
boolean remove(Object o):从此集合中移除指定元素(如果存在)。如果集合包含指定的元素,则移除它,并返回 true。否则,返回 false。
java
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
boolean removed = set.remove("apple"); // 移除元素"apple"
System.out.println("Element removed: " + removed); // 输出: Element removed: true
System.out.println(set); // 输出: [banana]
boolean removeAll(Collection<?> c):移除此集合中那些也包含在指定集合中的所有元素。成功则返回 true。
java
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.add("cherry");
Set<String> toRemove = new HashSet<>();
toRemove.add("banana");
toRemove.add("cherry");
boolean allRemoved = set.removeAll(toRemove); // 移除set中所有在toRemove中的元素
System.out.println("All elements removed: " + allRemoved); // 输出: All elements removed: true
System.out.println(set); // 输出: [apple]
void clear():移除此集合中的所有元素(可选操作)。此调用返回后,集合将为空。
java
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
set.clear(); // 移除集合中所有元素
System.out.println(set.isEmpty()); // 输出: true
System.out.println(set); // 输出: []
是否包含某元素
boolean contains(Object o):如果此集合包含指定的元素,则返回 true。
java
Set<String> set = new HashSet<>();
set.add("apple");
boolean containsApple = set.contains("apple"); // 检查集合是否包含元素"apple"
System.out.println("Contains apple: " + containsApple); // 输出: Contains apple: true
boolean containsAll(Collection<?> c):如果此集合包含指定集合中的所有元素,则返回 true。
java
Set<String> set = new HashSet<>();
set.add("apple");
set.add("banana");
Set<String> toCheck = new HashSet<>();
toCheck.add("apple");
boolean containsAll = set.containsAll(toCheck); // 检查集合是否包含toCheck中的所有元素
System.out.println("Contains all elements: " + containsAll); // 输出: Contains all elements:
交集
使用 retainAll()
方法:
java
import java.util.HashSet;
import java.util.Set;
public class SetIntersection {
public static void main(String[] args) {
Set<String> set1 = new HashSet<>();
set1.add("apple");
set1.add("banana");
set1.add("cherry");
Set<String> set2 = new HashSet<>();
set2.add("banana");
set2.add("cherry");
set2.add("date");
//求set1与set2的交集,交集保存在set1中
//retainAll:保留两者都有的
set1.retainAll(set2);
System.out.println("Intersection: " + set1);
// 输出: Intersection: [banana, cherry]
}
}
并集
使用 addAll()
方法
补集
使用 removeAll()
方法