• 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

  • 相关阅读:
    实验四 数据库安全设计
    对订单数据库进行查询等操作
    vue学习笔记7 -组件之 父子组件之间的访问
    vue学习笔记6 父子组件的通信之 子组件修改由父组件传递过来的值 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed pro
    vue学习笔记5 组件
    vue学习笔记4 v-mode
    vue学习笔记3 购物车 实例
    vue学习笔记2 实例学习
    vue学习笔记1 《Vue.js 前端开发 快速入门与专业应用》
    postman学习:如何写断言
  • 原文地址:https://www.cnblogs.com/softidea/p/9482267.html
Copyright © 2020-2023  润新知