Ho due (o più) oggetti Map<String, Integer>
. Mi piacerebbe unirli con l'API Java 8 Stream in modo che i valori per le chiavi comuni siano il massimo dei valori.Unione di due mappe <String, Integer> con 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);
}
Come posso rendere questo metodo di prova verde?
Ho giocato con collect
e Collectors
per un po 'senza alcun successo.
(ImmutableMap
e newArrayList
sono da Google Guava.)
Grande! Ho solo bisogno di una cosa diversa, invece di max, ho bisogno di media. Come posso farlo? –
@FirasAlMannaa https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html#average-- –