在Java中,Set
接口提供了多种方法来删除元素。以下是一些常用的方法:
remove(Object o)
: 删除集合中与指定对象相等的元素。如果集合中不存在该对象,则不执行任何操作。
Setset = new HashSet<>(); set.add("apple"); set.add("banana"); set.add("orange"); set.remove("banana"); // 删除集合中的"banana"元素
removeIf(Predicate super E> filter)
: 删除满足给定条件的所有元素。
Setset = new HashSet<>(); set.add(1); set.add(2); set.add(3); set.removeIf(n -> n % 2 == 0); // 删除集合中的所有偶数元素
removeAll(Collection> c)
: 删除集合中与指定集合中的所有元素相等的元素。
Setset1 = new HashSet<>(); set1.add("apple"); set1.add("banana"); Set set2 = new HashSet<>(); set2.add("banana"); set2.add("orange"); set1.removeAll(set2); // 删除集合set1中与集合set2中的所有元素相等的元素
retainAll(Collection> c)
: 仅保留集合中与指定集合中的所有元素相等的元素。
Setset1 = new HashSet<>(); set1.add("apple"); set1.add("banana"); Set set2 = new HashSet<>(); set2.add("banana"); set2.add("orange"); set1.retainAll(set2); // 仅保留集合set1中与集合set2中的所有元素相等的元素
注意:Set
接口的实现类(如HashSet
、LinkedHashSet
和TreeSet
)可能会有不同的性能表现,具体取决于它们的实现方式。