Erhalten Sie verschiedene Objekte und dieselben Objekte in zwei Listen
Erhalten Sie verschiedene Objekte und dieselben Objekte in zwei Listen
Datensätze erhalten unterschiedliche Objekte und gleiche Objekte in zwei Listen.
Methode eins: Doppelschichtige for-Schleife
//list有 list2没有
List<Map<String,Object>> l = new ArrayList<>();
//list有 list2有
List<Map<String,Object>> l2 = new ArrayList<>();
for (Map<String, Object> map : list) {
//标识 0代表不同
int flag = 0;
for (Map<String, Object> map2 : list2) {
//如果相同
if(map.get("name").equals(map2.get("name"))){
flag++;
}
}
if(flag==0){
l.add(map);
}else {
l2.add(map);
}
}
System.out.println(l);
System.out.println(l2);
Methode zwei Java8stream
//获取两个列表不同的对象 list有 list2没有
List<Map<String,Object>> res = list.stream().filter(a -> !list2.stream().map(b -> b.get("name")).collect(Collectors.toList()).contains(a.get("name"))).collect(Collectors.toList());
System.out.println(res);
//获取两个列表不同的对象 list没有 list2有
List<Map<String,Object>> res2 = list2.stream().filter(a -> !list.stream().map(b -> b.get("name")).collect(Collectors.toList()).contains(a.get("name"))).collect(Collectors.toList());
System.out.println(res2);```