我试图从Map列表中创建一个Map。它只包含键“1”以及使用Java8流api在该列表下的不同Map中键“1”的所有值。
List<Map<String,Object>> list=new ArrayList<>();
Map<String,Object> map1=new HashMap<>();
map1.put("1", Arrays.asList(new String[] {"A"}));
map1.put("2", Arrays.asList(new String[] {"B"}));
Map<String,Object> map2=new HashMap<>();
map2.put("1", Arrays.asList(new String[] {"C"}));
map2.put("2", Arrays.asList(new String[] {"D"}));
所需输出:- {1=[A, C]}
3条答案
按热度按时间fslejnso1#
你可以做:
或使用
groupingBy
收藏家:a14dhokn2#
正如@ernest\k提到的,你应该声明
list
作为:List<Map<String, List<String>>>
你可以使用groupingBy
收藏家:你可以去掉中间产物
filter
用这个。但这可能更令人困惑(实际上也是如此):k3fezbri3#
因为您只有一个条目,所以在本例中,您只需要关注值,对于键,您可以使用它
"1"
,为此,您可以创建如下Map:或者如lino在评论中所述,您也可以使用: