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