Lambda 应用(lambda表达式查询两个集合的差集)


  ArrayList<HiLifeFramePeriod> list1 = new ArrayList<>();
        list1.add(new HiLifeFramePeriod("1234", "测试1", "20210518112033000", "20210520113000000"));
        list1.add(new HiLifeFramePeriod("1235", "测试2", "20210518112033000", "20210520113000000"));
        list1.add(new HiLifeFramePeriod("1236", "测试3", "20210518112033000", "20210520113000000"));
        list1.add(new HiLifeFramePeriod("1237", "测试4", "20210518112033000", "20210520113000000"));
        ArrayList<HiLifeFramePeriod> list2 = new ArrayList<>();
        list2.add(new HiLifeFramePeriod("1234", "测试1_1", "20210518112033000", "20210520113000000", "3"));
        list2.add(new HiLifeFramePeriod("1238", "测试5-2", "20210518112033000", "20210520113000000"));
        list2.add(new HiLifeFramePeriod("1239", "测试6-3", "20210518112033000", "20210520113000000"));
        list2.add(new HiLifeFramePeriod("1237", "测试4", "20210518112033000", "20210520113000000"));
        List<HiLifeFramePeriod> list3 = new ArrayList<>();
        for (int j = 0; j < list1.size(); j++) {
            for (int i = 0; i < list2.size(); i++) {
                if (list1.get(j).getId().equals(list2.get(i).getId())) {
                    HiLifeFramePeriod period = new HiLifeFramePeriod();
                    period.setId(list1.get(j).getId());
                    period.setTittle(list1.get(j).getTittle());
                    period.setStartTime(list1.get(j).getStartTime());
                    period.setEndTime(list1.get(j).getEndTime());
                    if (list2.get(i).getPeriod() != null) {
                        period.setPeriod(list2.get(i).getPeriod());
                    }
                    list3.add(period);
                }
            }
        }
        System.out.println(list3);
        List<HiLifeFramePeriod> collect = list1.stream().filter(item -> !list3.stream().map(a -> a.getId()).collect(Collectors.toList()).contains(item.getId())).collect(Collectors.toList());
        System.out.println(collect);
        List<HiLifeFramePeriod> collect1 = list2.stream().filter(item -> !list3.stream().map(a -> a.getId()).collect(Collectors.toList()).contains(item.getId())).collect(Collectors.toList());
        System.out.println(collect1);

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM