我有两个(或更多)Map<String, Integer>对象.我想将它们与Java 8 Stream API合并,使公共键的值应该是值的最大值.
@Test
public void test14() throws Exception {
Map<String, Integer> m1 = ImmutableMap.of("a", 2, "b", 3);
Map<String, Integer> m2 = ImmutableMap.of("a", 3, "c", 4);
List<Map<String, Integer>> list = newArrayList(m1, m2);
Map<String, Integer> mx = list.stream()... // TODO
Map<String, Integer> expected = ImmutableMap.of("a", 3, "b", 3, "c", 4);
assertEquals(expected, mx);
}
Run Code Online (Sandbox Code Playgroud)
如何将此测试方法设为绿色?
我已经打了collect,并Collectors有一阵子没有任何成功.
(ImmutableMap和newArrayList来自谷歌番石榴).
我有两个映射,其键是Strings,其值是Set<MyObject>.给定两个Maps,合并它们的最简单方法是什么,如果两个键相同,则值是两个集合的并集.你可以假设值是永远不能为null,如果它是有用的,我们可以把这些Map小号SortedMap秒.