📅  最后修改于: 2023-12-03 15:16:27.478000             🧑  作者: Mango
Java中的TreeSet
是一种使用红黑树数据结构实现的集合类,特点是元素有序且不可重复。TreeSet
类提供了许多操作集合的方法,其中包括retainAll()
方法。
retainAll()
方法用于求交集,即保留原集合和参数集合中都包含的元素,删除原集合中不包含在参数集合中的元素。
public boolean retainAll(Collection<?> c)
参数说明:
c
:用于求交集的集合。返回值:
true
:如果原集合发生变化,即至少存在一个元素被删除。false
:如果原集合不发生变化,即原集合中的所有元素都在参数集合中。下面是一个使用retainAll()
方法求交集的示例:
import java.util.TreeSet;
public class TreeSetExample {
public static void main(String[] args) {
// 创建两个TreeSet集合
TreeSet<Integer> set1 = new TreeSet<>();
TreeSet<Integer> set2 = new TreeSet<>();
// 向set1中添加元素
set1.add(1);
set1.add(2);
set1.add(3);
set1.add(4);
System.out.println("set1:" + set1); // set1:[1, 2, 3, 4]
// 向set2中添加元素
set2.add(3);
set2.add(4);
set2.add(5);
set2.add(6);
System.out.println("set2:" + set2); // set2:[3, 4, 5, 6]
// 求set1和set2的交集
set1.retainAll(set2);
// 输出set1,即为set1和set2的交集
System.out.println("set1和set2的交集:" + set1); // set1和set2的交集:[3, 4]
}
}
输出结果为:
set1:[1, 2, 3, 4]
set2:[3, 4, 5, 6]
set1和set2的交集:[3, 4]
从输出结果可以看出,原集合set1
中只保留了和参数集合set2
中相同的元素,即3和4。因此,输出结果为[3, 4]
。
retainAll()
方法不会改变原集合的元素顺序。retainAll()
方法只保留原集合和参数集合中都包含的元素,删除原集合中不包含在参数集合中的元素。如果需要求并集或者差集,可以使用addAll()
方法和removeAll()
方法。retainAll()
方法返回的布尔值可以用于判断原集合是否发生了变化,具体可以根据应用场景自行处理。