Java集合List-差集、并集、交集

Java集合List的差集、并集、交集

转载于:https://www.cnblogs.com/qlqwjy/p/9812919.html

一、List的差集

    @Test
    public void test1(){
        List<String> list1 = new ArrayList<String>();
        list1.add("A");
        list1.add("B");

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

//        list1.removeAll(list2);
//        System.out.println(list1); //[A]
//        System.out.println(list2);//[B, C]

        list2.removeAll(list1);
        System.out.println(list1);//[A, B]
        System.out.println(list2);//[C]
    }

二、List的并集(带重复项)

    @Test
    public void test2(){
        List<String> list1 = new ArrayList<String>();
        list1.add("A");
        list1.add("B");

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

//        list1.addAll(list2);
//        System.out.println(list1);//[A, B, B, C]
//        System.out.println(list2);//[B, C]

        list2.addAll(list1);
        System.out.println(list1);//[A, B]
        System.out.println(list2);//[B, C, A, B]
    }

三、List的并集(不带重复项)

    @Test
    public void test3(){
        List<String> list1 = new ArrayList<String>();
        list1.add("A");
        list1.add("B");

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

//        list1.removeAll(list2);
//        list1.addAll(list2);
//        System.out.println(list1);//[A, B, C]
//        System.out.println(list2);//[B, C]

        list2.removeAll(list1);
        list2.addAll(list1);
        System.out.println(list1);//[A, B]
        System.out.println(list2);//[C, A, B]
    }

四、List的交集

    @Test
    public void test4(){
        List<String> list1 = new ArrayList<String>();
        list1.add("A");
        list1.add("B");

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

//        list1.retainAll(list2);
//        System.out.println(list1);//[B]
//        System.out.println(list2);//[B, C]

        list2.retainAll(list1);
        System.out.println(list1);//[A, B]
        System.out.println(list2);//[B]
    }
上一篇:Leetcode之 Find the Duplicate Number


下一篇:013 合并两个排序的链表