美文网首页
拿取两个同类型集合的完全不同的元素

拿取两个同类型集合的完全不同的元素

作者: 浪客行1213 | 来源:发表于2018-12-12 17:33 被阅读0次

求俩个集合的差集


1):应用场景  

    集合 list1  中有元素 1,2,4;

    集合 list2 中有元素 2,3;

    期望 得到一个新集合 list3 元素有 1,3,4;

2):代码

 List<Integer> list1 = new ArrayList<>();

    list1.add(1);

    list1.add(2);

    list1.add(4);

List<Integer> list2 = new ArrayList<>();

    list2.add(3);

    list2.add(2);

List<Integer> list3 = new ArrayList<>();

1.利用 HashMap 键 唯一的 特性    键是先入为主的键 值是后来居上的值 

Map<Integer, Integer> map = new HashMap<Integer,Integer>();

    for (Integer i : list1) {

将集合一中的元素作为map的键存入

            map.put(i, 1);
    }
for (Integer i : list2) {

判断 集合2中是否有与集合1重复的元素 重复元素改值 作为后期区分依据

     if(map.get(i)!=null) {
          map.put(i, 2);
            continue;
       }

集合2中没有重复的元素加入集合3

       list3.add(i);
     }

遍历集合

 for(Map.Entry<Integer, Integer> entry:map.entrySet())  {

值为1的  对应的键就是 集合1中 没有与集合2重复的元素

            if(entry.getValue()==1) {

加入集合3

                list3.add(entry.getKey());

            }

        }

打印集合3  结果  3,1,4;

2.利用集合自身的    removeAll()/retainAll();/addAll();

    新建一个集合暂存数据

    List<Integer> temp = new ArrayList<>();

            temp.addAll(list1);

       求两个集合的并集 

            list1.addAll(list2);

        求两个集合的交集

            list2.retainAll(temp);

        并集与交集的差集

            list1.removeAll(list2);

            for (Integer integer : list1) {

                    System.out.println(integer);

            }

打印结果 1,4,3;


注意:如果集合中的元素是对象的时候 记得重写 对象的equals()和hashCode();

     

浪客行1213的简书                                                   


XHH

相关文章

  • 拿取两个同类型集合的完全不同的元素

    求俩个集合的差集 1):应用场景 集合 list1 中有元素 1,2,4; 集合 list2 中有元素 2,3...

  • 收集类型 - 字典

    一个集合也是能够存放多个相同类型元素的收集。不过它与数组不同的是:一个集合中不允许出现两个完全相同的元素。一个集合...

  • 一文了解Redis集合类型

    集合类型 Redis集合类型中,元素是不重复的,即每个元素在集合中都是唯一的;不同于列表类型,集合的元素没有顺序,...

  • JavaScript Set没你想的那么简单!

    Set Set是unique(不同)元素的集合,其中每个元素可以是任何类型。Set也是元素的有序集合。这意味着元素...

  • 04 python中set的基本使用

    1 集合 1.1 集合的特征 不同元素组成 无序 集合中元素必须是不可变类型 1.2 集合的定义 直接定义{1,2...

  • 10.Python基础语法---06集合

    集合 基本定义:通过{}构建 特性:无序,不可重复,元素可以是不同类型(不支持unhashable 类型的元素) ...

  • 集合框架

    集合框架:方便对多个数组操作集合与数组的区别 集合:长度可变 存储不同类型的元素 只可以存储引用类型 数组...

  • 算法

      面对不同元素类型的集合和不同的集合类型,可能相同的一个算法的实现方式不止一个。  然而,泛型集合接口有一个很大...

  • # Python -07 组合数据类型

    集合类型 集合是多个元素的无序组合集合类型与数学中的集合概念一致集合元素之间无序,每个元素唯一,不存在相同元素 集...

  • Redis常用命令七:有序集合

    前言:Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一...

网友评论

      本文标题:拿取两个同类型集合的完全不同的元素

      本文链接:https://www.haomeiwen.com/subject/esephqtx.html