public static List<HashMap<String, Object>> merge(ArrayList<HashMap<String, Object>>
list1,ArrayList<HashMap<String, Object>> list2,String key) {
//List<HashMap<String, Object>> list1 = new ArrayList<HashMap<String, Object>>();
//List<HashMap<String, Object>> list2 = new ArrayList<HashMap<String, Object>>();
List<HashMap<String, Object>> list3 = new ArrayList<HashMap<String, Object>>();
/*
* Map map11 = new HashMap<String, Object>(); map11.put("id", "1");
* map11.put("l1", "aa"); Map map1 = new HashMap<String, Object>();
* map1.put("id", "2"); map1.put("l1", "aa"); list1.add((HashMap<String,
* Object>) map11); list1.add((HashMap<String, Object>) map1); Map map22 = new
* HashMap<String, Object>(); map22.put("id", "1"); map22.put("name", "aa");
* map22.put("l2", "bb"); Map map33 = new HashMap<String, Object>();
* map33.put("id", "2"); map33.put("name", "aa"); map33.put("l2", "bb");
* list2.add((HashMap<String, Object>) map22); list2.add((HashMap<String,
* Object>) map33);
*/
//list1= (ArrayList<Map<String, Object>>) list1;
//list2= (ArrayList<Map<String, Object>>) list2;
Optional.ofNullable(list1).
orElse(new ArrayList<HashMap<String, Object>>()).parallelStream().forEach(o1 ->
{ Optional.ofNullable(list2).orElse(new ArrayList<HashMap<String, Object>>()).
parallelStream().forEach(o2 -> {
if (o1.get(key) == o2.get(key) )
{ Iterator<Entry<String, Object>> iterator1 = o1.entrySet().iterator();
Iterator<Entry<String, Object>> iterator2 = o2.entrySet().iterator();
HashMap<String, Object> map = new HashMap<String, Object>();
while (iterator1.hasNext()) {
Entry<String, Object> next = iterator1.next();
map.put(next.getKey(), next.getValue());
}
while (iterator2.hasNext()){
Entry<String, Object> next = iterator2.next();
map.put(next.getKey(), next.getValue());
}
list3.add(map); } });
});
//System.out.println(list3);
return list3;
}
public static List<HashMap<String, Object>> getNewList(List<HashMap<String, Object>> list1,String key) {
//List<HashMap<String, Object>> list1 = new ArrayList<HashMap<String, Object>>();
//List<HashMap<String, Object>> list2 = new ArrayList<HashMap<String, Object>>();
List<HashMap<String, Object>> list3 = new ArrayList<HashMap<String, Object>>();
/*
* Map map11 = new HashMap<String, Object>(); map11.put("id", "1");
* map11.put("l1", "aa"); Map map1 = new HashMap<String, Object>();
* map1.put("id", "2"); map1.put("l1", "aa"); list1.add((HashMap<String,
* Object>) map11); list1.add((HashMap<String, Object>) map1); Map map22 = new
* HashMap<String, Object>(); map22.put("id", "1"); map22.put("name", "aa");
* map22.put("l2", "bb"); Map map33 = new HashMap<String, Object>();
* map33.put("id", "2"); map33.put("name", "aa"); map33.put("l2", "bb");
* list2.add((HashMap<String, Object>) map22); list2.add((HashMap<String,
* Object>) map33);
*/
//list1= (ArrayList<Map<String, Object>>) list1;
//list2= (ArrayList<Map<String, Object>>) list2;
Optional.ofNullable(list1).
orElse(new ArrayList<HashMap<String, Object>>()).parallelStream().forEach(o1 -> {
Iterator<Entry<String, Object>> iterator1 = o1.entrySet().iterator();
HashMap<String, Object> map = new HashMap<String, Object>();
while (iterator1.hasNext()) {
Entry<String, Object> next = iterator1.next();
if(next.getKey()=="FLAG") {
map.put(next.getKey(), next.getValue());
}
else {
map.put(next.getKey(), next.getValue());
}
}
list3.add(map);
});
//System.out.println(list3);
return list3;
}
public static void main(String[] args) {
List<HashMap<String, Object>> list1 = new ArrayList<HashMap<String, Object>>();
Map map11 = new HashMap<String, Object>();
map11.put("FLAG", "1000000000000000000000");
map11.put("ID", "aa");
map11.put("dd", "aa");
Map map1 = new HashMap<String, Object>();
map1.put("ID", "AA");
map11.put("dd", "aa");
map1.put("FLAG", "1000000000000000000000");
list1.add((HashMap<String,
Object>) map11);
list1.add((HashMap<String, Object>) map1);
List list = getNewList(list1,"FLAG");
System.out.println(list);
}
java8 List<Map> 操作 以某个key合并两个List<Map>
最新推荐文章于 2023-12-07 10:30:37 发布