前提需要明白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]


拾柒_
87 声望1 粉丝