如何求集合之间的交集(重复元素)?

如何筛选有包含关系的集合的差集(集合中有重复元素)java实现,java8新特性,java开发工具类,手动方式均可 (最好通过java8,和常用工具类实现)

例如:



public static void main(String[] args) {
List<String> listA = new ArrayList<>();
List<String> listB = new ArrayList<>();
listA.add("A");
listA.add("A");
listA.add("B");
listA.add("B");
listA.add("C");

listB.add("A");
listB.add("A");
listB.add("B");
//输出需要的结果是: B, C
}

 

   List<String> listA = new ArrayList<>();
        List<String> listB = new ArrayList<>();
        listA.add("A");
        listA.add("A");
        listA.add("B");
        listA.add("B");
        listA.add("C");

        listB.add("A");
        listB.add("A");
        listB.add("B");

        //工具类
        System.out.println(CollectionUtil.disjunction(listA, listB));

 

public static void main(String[] args) {
        List<String> listA = new ArrayList<>();
        List<String> listB = new ArrayList<>();
        listA.add("A");
        listA.add("A");
        listA.add("B");
        listA.add("B");
        listA.add("C");

        listB.add("A");
        listB.add("A");
        listB.add("B");

//        List<String> remo = new ArrayList<>();
        List<String> 差集 = listA.stream().filter(str -> {
            if (listB.contains(str)) {
                listB.remove(str);
                return false;
            }
            return true;
        }).collect(Collectors.toList());

        System.out.printf(差集.toString());
        //结果 BC
    }

 

有重复的

List<String> listA = new ArrayList<>();
List<String> listB = new ArrayList<>();
listA.add("A");
listA.add("A");
listA.add("B");
listA.add("B");
listA.add("C");

listB.add("A");
listB.add("A");
listB.add("B");

listB.stream().forEach(vo->listA.remove(vo));


System.out.println(JSONArray.toJSONString(listA));

差集remove一下不就行了,不用绣出花来吧!【捂脸】

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y