📜  Java中的 TreeSet retainAll() 方法与示例(1)

📅  最后修改于: 2023-12-03 15:16:27.478000             🧑  作者: Mango

Java中的 TreeSet retainAll() 方法与示例

简介

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()方法返回的布尔值可以用于判断原集合是否发生了变化,具体可以根据应用场景自行处理。