zoukankan      html  css  js  c++  java
  • List和set集合:交集、差集、合集的区别retainAll,removeAll、addAll

    set 、list集合的交集(retainAll)、差集(removeAll)是没有区别的都是一样的.

    set 、list集合的合集addAll是有区别的:set可以去重复;list不去重复

    public static void main(String[] args) {
                Set<Integer> result = new HashSet<Integer>();
                Set<Integer> set1 = new HashSet<Integer>(){{
                    add(1);
                    add(3);
                    add(5);
                }};

                Set<Integer> set2 = new HashSet<Integer>(){{
                    add(1);
                    add(2);
                    add(3);
                }};

                result.clear();
                result.addAll(set1);
                System.out.println("去重复交集前1:"+set1);
                System.out.println("去重复交集前2:"+set2);
                result.retainAll(set2);
                System.out.println("set1与set2的交集是:"+result);

                result.clear();
                result.addAll(set2);
                System.out.println("差集前的1:"+set1);
                System.out.println("差集前的2:"+set2);
                result.removeAll(set1);
                System.out.println("set2与set1的差集是:"+result);

                result.clear();
                result.addAll(set1);
                result.addAll(set2);
               
                System.out.print("set1和set2的并集:"+result);
                System.err.print("set1集合并集:是去重复"+" ");
                
                
                
                List<Integer> list = new ArrayList<Integer>();
                List<Integer> list1 = new ArrayList<Integer>(){{
                    add(1);
                    add(3);
                    add(5);
                }};

                List<Integer> list2 = new ArrayList<Integer>(){
                {
                    add(1);
                    add(2);
                    add(3);
                }};

                list.clear();
                list.addAll(list1);
                System.out.println("去重复交集前1:"+list1);
                System.out.println("去重复交集前2:"+list2);
                list.retainAll(list2);
                System.out.println("list1与list2的交集是:"+list);

                list.clear();
                list.addAll(list2);
                System.out.println("差集前的1:"+list1);
                System.out.println("差集前的2:"+list2);
                list.removeAll(list1);
                System.out.println("list2与list1的差集是:"+list);

                list.clear();
                list.addAll(list1);
                list.addAll(list2);
                
                System.out.print("list1和set2的并集:"+list);
                System.err.print("List集合并集:是不会去重复");

            }

     

    输出结果:

    去重复交集前1:[1, 3, 5]
    去重复交集前2:[1, 2, 3]
    set1与set2的交集是:[1, 3]
    差集前的1:[1, 3, 5]
    差集前的2:[1, 2, 3]
    set2与set1的差集是:[2]
    set1和set2的并集:[1, 2, 3, 5]set1集合并集:是去重复

     

    去重复交集前1:[1, 3, 5]
    去重复交集前2:[1, 2, 3]
    list1与list2的交集是:[1, 3]
    差集前的1:[1, 3, 5]
    差集前的2:[1, 2, 3]
    list2与list1的差集是:[2]
    list1和set2的并集:[1, 3, 5, 1, 2, 3]List集合并集:是不会去重复

    https://blog.csdn.net/shenhonglei1234/article/details/52063399

  • 相关阅读:
    【Java】Junit快速入门
    【Redis】Redis Sentinel 哨兵模式搭建
    【Redis】Redis 主从模式搭建
    Android开发过程中的坑及解决方法收录(六)
    杂牌机搞机之旅(一)——获得root权限(刷入magisk)
    Java 学习笔记 泛型
    Java 学习笔记 反射与迭代器
    Java 学习笔记 正则表达式
    Java 学习笔记 执行外部命令 包装类 枚举类型
    IDEA设置显示中文文档API方法说明
  • 原文地址:https://www.cnblogs.com/softidea/p/9482267.html
Copyright © 2011-2022 走看看