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