关于java:集合的交集差集并集

28次阅读

共计 788 个字符,预计需要花费 2 分钟才能阅读完成。

前提须要明确 List 是援用类型,援用类型采纳援用传递。

咱们常常会遇到一些需要求汇合的交加、差集、并集。例如上面两个汇合:

List<String> list1 = new ArrayList<String>();
list1.add("A");
list1.add("B");

List<String> list2 = new ArrayList<String>();
list2.add("B");
list2.add("C");

0. 求差集
例如,求 List1 中有的然而 List2 中没有的元素:

public static void test3(List list1, List list2) {list1.removeAll(list2);
    System.out.println(list1);
}

后果: [A]

1. 求并集(不去重)— 将一个汇合全副退出另一个汇合

    public static void test(List list1, List list2) {list1.addAll(list2);
        System.out.println(list1);
    }

后果: [A, B, B, C]

2. 求并集 (去重)
例如: 求 List1 和 List2 的并集, 并实现去重。
思路是: 先将 list 中与 list2 反复的去掉,之后将 list2 的元素全副增加进去。

    public static void test1(List list1, List list2) {list1.removeAll(list2);
        list1.addAll(list2);
        System.out.println(list1);
    }

后果 : [A, B, C]

3. 求交加
例如: 求 List1 和 List2 中都有的元素。

    public static void test2(List list1, List list2) {list1.retainAll(list2);
        System.out.println(list1);
    }

后果:[B]

正文完
 0