public class test {
public static void main(String[] args) {
//测试
List<Map<String,Object>> sosList = new ArrayList<>();
List<Map<String,Object>> localList = new ArrayList<>();
//准备测试数据
String cloumName = "id";
int i = 7;
for (int i1 = 0; i1 < i; i1++) {
Map<String,Object> foo = new HashMap<>();
foo.put("id",i1*1111);
foo.put("name",i1*1111);
sosList.add(foo);
if(i1 >= 5){
foo.put("name",i1*2222);
localList.add(foo);
}
}
System.out.println("sosList:"+sosList);
System.out.println("localList:"+localList);
//交集
List<Map<String, Object>> updateList = localList.stream().map(map -> sosList.stream().filter(m -> Objects.equals(m.get(cloumName), map.get(cloumName))).findFirst().map(m -> { map.putAll(m);return map; }).orElse(null)).filter(Objects::nonNull).collect(Collectors.toList());
//差集
List<Map<String, Object>> insertList = sosList.stream().filter((mapItem) -> !localList.stream().map(item -> item.get(cloumName)).collect(Collectors.toList()).contains(mapItem.get(cloumName))).collect(Collectors.toList());
System.out.println("insertList:"+insertList);
System.out.println("updateList:"+updateList);
}
}