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

おすすめ

転載: blog.csdn.net/m0_46647628/article/details/131559202