List集合的交集(retainAll)、并集(removeAll,addAll)、差集(removeAll)

交集listA.retainAll(listB)listA内容变为listA和listB都存在的对象listB不变
差集listA.removeAll(listB)listA中存在的listB的内容去重listB不变
并集

listA.removeAll(listB)

listA.addAll(listB)

为了去重,listA先取差集,然后追加全部的listBlistB不变
public static void main(String[] args) {
        List<String> listA = new ArrayList<String>(){{
            add("A");
            add("B");
            add("C");
            add("D");
            add("E");
            add("F");
        }};

        List<String> listB = new ArrayList<String>(){{
            add("A");
            add("G");
            add("Q");
            add("D");
            add("O");
            add("F");
            add("M");
            add("X");
        }};

        // 并集
        System.out.println("--并集---------------------");
        listA.removeAll(listB);
        listA.addAll(listB);
        System.out.println("listA: " + listA);
        System.out.println("listB:" + listB);


        List<String> listC = new ArrayList<String>(){{
            add("A");
            add("B");
            add("C");
            add("D");
        }};

        List<String> listD = new ArrayList<String>(){{
            add("A");
            add("G");
            add("Q");
            add("D");
            add("O");
        }};
        // 交集
        System.out.println("--交集---------------------");
        listC.retainAll(listD);
        System.out.println("listC: " + listC);
        System.out.println("listD:" + listD);


        List<String> listE = new ArrayList<String>(){{
            add("A");
            add("B");
            add("C");
            add("D");
            add("E");
        }};

        List<String> listF = new ArrayList<String>(){{
            add("A");
            add("G");
            add("Q");
            add("D");
        }};

        // 差集
        System.out.println("--差集---------------------");
        listE.removeAll(listF);
        System.out.println("listE:" + listE);
        System.out.println("listF:" + listF);
    }

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值