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);