【发布时间】:2021-10-12 20:35:29
【问题描述】:
这是我的代码,它将返回组合列表:
List<Map<String, Object>> viewList = new ArrayList<Map<String,Object>>();
List<Map<String, Object>> viewList1 = new ArrayList<Map<String,Object>>();
Map<String, Object> viewMap1 = new HashMap<String, Object>();
viewMap1.put("ARTICLE_ID", "000000001000100126");
viewMap1.put("SOURCE_ID", "0000007001");
viewMap1.put("UOM", "CS");
Map<String, Object> viewMap2 = new HashMap<String, Object>();
viewMap2.put("ARTICLE_ID", "000000001000100126");
viewMap2.put("SOURCE_ID", "0000007001");
viewMap2.put("UOM", "EA");
Map<String, Object> viewMap3 = new HashMap<String, Object>();
viewMap3.put("ARTICLE_ID", "000000001000100126");
viewMap3.put("SOURCE_ID", "0000007001");
viewMap3.put("UOM", "YD2");
Map<String, Object> viewMap4 = new HashMap<String, Object>();
viewMap4.put("BASEQUANTITY", "3");
viewList.add(viewMap1);
viewList.add(viewMap2);
viewList.add(viewMap3);
viewList1.add(viewMap4);
List<Map<String, Object>> combinedList = Stream.of(viewList, viewList1)
.flatMap(x -> x.stream())
.collect(Collectors.toList());
System.out.println(combinedList);
我得到如下输出:
[{uom = cs,source_id = 0000001000100126},{uom = ea,source_id = 0000007001,stition_id = 000000001000100126},{uom = yd2,source_id = 000000007001,Starts_id = 000000001000100126},{basequantive = 3 }]
我想要这样的输出:
[{UOM=CS, SOURCE_ID=0000007001, ARTICLE_ID=000000001000100126, BASEQUANTITY=3}, {UOM=EA, SOURCE_ID=0000007001, ARTICLE_ID=000000001000100126, BASEQUANTITY=3}, {UOM_00ID00702, ARTICLE_ID=YDCE=02, =000000001000100126,基量=3}]
如何将最后一个元素,即combinedList 的 BASEQUANTITY=3 添加到第一个 List 的每个子列表中,并从 combinedList 中删除该元素,如上面的输出所示。请帮忙。
【问题讨论】:
-
为什么列表中有第二张地图?似乎您想要的只是将一个条目从
viewList复制到所有列表中? -
@ernest_k , 我们需要合并 2 个地图列表。
-
你想要这个吗? List
-
@Preston,我不确定它是否会给我一个错误。你能验证你的答案吗?
-
更新:List
标签: java arraylist collections java-8 java-stream