JAVA 2个集合差集交集

java 复制代码
        // 创建第一个集合
        List<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);

        // 创建第二个集合
        List<Integer> list2 = new ArrayList<>();
        list2.add(2);
        list2.add(4);
        list2.add(5);

        // 将第一个集合转换为 HashSet
        Set<Integer> set1 = new HashSet<>(list1);

        // 将第二个集合转换为 HashSet
        Set<Integer> set2 = new HashSet<>(list2);

//         计算差集并输出结果
        set1.removeAll(set2);
        System.out.println("1相对于2差集为:" + set1);

结果:

1相对于2差集为:[1, 3]

而2相对于1差集为:

java 复制代码
        // 创建第一个集合
        List<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);

        // 创建第二个集合
        List<Integer> list2 = new ArrayList<>();
        list2.add(2);
        list2.add(4);
        list2.add(5);

        // 将第一个集合转换为 HashSet
        Set<Integer> set1 = new HashSet<>(list1);

        // 将第二个集合转换为 HashSet
        Set<Integer> set2 = new HashSet<>(list2);

//         计算差集并输出结果
//        set1.removeAll(set2);
//        System.out.println("1相对于2差集为:" + set1);

        set2.removeAll(set1);
        System.out.println("2相对于1差集为:" + set2);

2相对于1差集为:[4, 5]

而交集则如下代码:

java 复制代码
    public static void main(String[] args) {

        // 创建第一个集合
        List<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);

        // 创建第二个集合
        List<Integer> list2 = new ArrayList<>();
        list2.add(2);
        list2.add(4);
        list2.add(5);

        // 将第一个集合转换为 HashSet
        Set<Integer> set1 = new HashSet<>(list1);

        // 将第二个集合转换为 HashSet
        Set<Integer> set2 = new HashSet<>(list2);

//         计算差集并输出结果
//        set1.removeAll(set2);
//        System.out.println("1相对于2差集为:" + set1);

//        set2.removeAll(set1);
//        System.out.println("2相对于1差集为:" + set2);

        Set<Integer> set3 = new HashSet<>(list1);
        set3.retainAll(set2);
        System.out.println("1和2交集为:" + set3);
    }

结果:

java 复制代码
1和2交集为:[2]
相关推荐
北执南念2 分钟前
基于 Spring 的策略模式框架,用于根据不同的类的标识获取对应的处理器实例
java·spring·策略模式
王道长服务器 | 亚马逊云5 分钟前
一个迁移案例:从传统 IDC 到 AWS 的真实对比
java·spring boot·git·云计算·github·dubbo·aws
华仔啊10 分钟前
为什么 keySet() 是 HashMap 遍历的雷区?90% 的人踩过
java·后端
9号达人23 分钟前
Java 13 新特性详解与实践
java·后端·面试
橙序员小站28 分钟前
搞定系统设计题:如何设计一个支付系统?
java·后端·面试
嘟嘟可在哪里。42 分钟前
IntelliJ IDEA git凭据帮助程序
java·git·intellij-idea
岁忧43 分钟前
(LeetCode 每日一题) 3541. 找到频率最高的元音和辅音 (哈希表)
java·c++·算法·leetcode·go·散列表
_extraordinary_1 小时前
Java 多线程进阶(四)-- 锁策略,CAS,synchronized的原理,JUC当中常见的类
java·开发语言
纪元A梦2 小时前
贪心算法应用:信用评分分箱问题详解
java·算法·贪心算法
007php0072 小时前
Redis高级面试题解析:深入理解Redis的工作原理与优化策略
java·开发语言·redis·nginx·缓存·面试·职场和发展