欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

ArrayList的交集,差集,并集,去重并集,arraylist交集

来源: javaer 分享于  点击 22305 次 点评:183

ArrayList的交集,差集,并集,去重并集,arraylist交集


//创建两个ArrayList并添加元素
        List<Integer> list1 = new ArrayList<Integer>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);

        List<Integer> list2 = new ArrayList<Integer>();
        list2.add(3);
        list2.add(4);
        list2.add(5);
        list2.add(6);

判断交集:

  list2.retainAll(list1);
        if(list1.size()>0){
            System.out.println("存在交集");
        }

retainAll()方法通过检测list1的大小,大小改变返回true(没有交集返回true),大小不变返回false(两集合相同返回false)。不能通过true或false确定是否存在交集,只能通过list1.seze()判断。

输出交集:可以通过双重for循环把相同结果输出;下面使用了set去重。

        //用set去重特点求交集
        HashSet<Integer> hashSet=new HashSet<Integer>();
        //list3储存交集
        List<Integer> list3 = new ArrayList<Integer>();
        for (Integer i:list1
             ) {
            hashSet.add(i);
        }
        for (Integer i:list2
                ) {
            if(hashSet.add(i)==false){//add失败则认为有相同元素,存放到list3
                list3.add(i);
            }
        }
        System.out.println(list3);

差集:

        // 差集,属于list1而不属于list2
        list1.removeAll(list2);
        System.out.println("差集:"+list1);

并集:

        // 并集
        list1.addAll(list2);
        System.out.println("并集:"+list1);

去重并集:

        // 无重复并集
        list2.removeAll(list1);
        list1.addAll(list2);
        for (Integer i : list1) {
            System.out.println(i);
        }

相关文章

    暂无相关文章

用户点评