//过滤 List<LiveGoods> pageList = page.getList(); if (EmptyUtils.isNotEmpty(liveGoods)) { pageList = pageList.stream().filter(a -> !liveGoods.stream().map(b -> b.getId()).collect(Collectors.toList()).contains(a.getId()) ).collect(Collectors.toList()); }
public static void main(String[] args) {
List<TestA> aList = new ArrayList<>();
for(int i =0;i< 5;i++){
TestA a = new TestA();
a.setId(Long.valueOf(i+1));
a.setName(i+"名字");
a.setAge("10");
a.setSex(1l);
aList.add(a);
}
for(int i =0;i< 2;i++){
TestA a = new TestA();
a.setId(Long.valueOf(i+20));
a.setName(i+"名字");
a.setAge("10");
a.setSex(1l);
aList.add(a);
}
List<TestA> bList = new ArrayList<>();
for(int i =0;i< 3;i++){
TestA a = new TestA();
a.setId(Long.valueOf(i+1));
a.setName(i+"名字");
a.setAge("10");
a.setSex(1l);
bList.add(a);
}
for(int i =0;i< 2;i++){
TestA a = new TestA();
a.setId(Long.valueOf(i+10));
a.setName(i+"名字");
a.setAge("10");
a.setSex(1l);
bList.add(a);
}
//取交集
List<TestA> intersectionList = aList.stream().filter(a->
bList.stream().map(b-> b.getId().longValue()).collect(Collectors.toList()).contains(a.getId().longValue())
).collect(Collectors.toList());
System.out.println("交集"+intersectionList);
//取差集
List<TestA> differenceSetAList = aList.stream().filter(a->
!bList.stream().map(b-> b.getId().longValue()).collect(Collectors.toList()).contains(a.getId().longValue())
).collect(Collectors.toList());
System.out.println("差集"+differenceSetAList);
//并集(把A和B中分别取到的差合并到一起)
List<TestA> differenceSetBList = bList.stream().filter(b->
!aList.stream().map(a-> a.getId().longValue()).collect(Collectors.toList()).contains(b.getId().longValue())
).collect(Collectors.toList());
List<TestA> unionList = new ArrayList<>(differenceSetAList);
unionList.addAll(differenceSetBList);
System.out.println("并集"+unionList);
}
取交集并给某个属性值赋值
fzAllAreaList.stream().filter(a -> { if (fzAreasList.stream().map(b -> b.getClinicAreaId()).collect(Collectors.toList()).contains(a.getClinicAreaId())) { a.setDocJur(YesOrNoEnum.YES.getValue()); return true; } a.setDocJur(YesOrNoEnum.NO.getValue()); return false; }).collect(Collectors.toList());