我有MapList<Map<String,String>>
的列表,并希望转换为Map<String, List String>>
下面是示例代码
List<Map<String,String>> recordListMap = new ArrayList<>();
Map<String,String> recordMap_1 = new HashMap<>();
recordMap_1.put("inputA", "ValueA_1");
recordMap_1.put("inputB", "ValueB_1");
recordListMap.add(recordMap_1);
Map<String,String> recordMap_2 = new HashMap<>();
recordMap_2.put("inputA", "ValueA_2");
recordMap_2.put("inputB", "ValueB_2");
recordListMap.add(recordMap_2);
我尝试了下面的方法,但没有得到所需的结果:
Map<String, List<String>> myMaps = new HashMap<>();
for (Map<String, String> recordMap : recordListMap) {
for (Map.Entry<String, String> map : recordMap.entrySet()) {
myMaps.put(map.getKey(), List.of(map.getValue()));
}
}
OutPut: {inputB=[ValueB_2], inputA=[ValueA_2]}
预期结果:
{inputB=[ValueB_1, ValueB_2], inputA=[ValueA_1, ValueA_2]}
2条答案
按热度按时间juud5qan1#
像这样试试。
computeIfAbsent
将添加列表作为键的值,如果键不存在。new or existing
列表,以便现在可以将对象添加到该列表。另一种选择是使用流。
两者都将包含
查看Map.computeIfAbsent
yyhrrdl82#
请参见Map#compute部分
Map#compute
Map#computeIfPresent
Map#computeIfAbsent
假设您不想使用Multimap,那么类似的东西应该可以解决这个问题。