Mam dwa (lub więcej) obiektów Map<String, Integer>
. Chciałbym połączyć je z API Java 8 Stream w taki sposób, aby wartości dla wspólnych kluczy były maksymalnymi wartościami.Scalanie dwóch Map <String, Integer> z 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);
}
Jak mogę uczynić tę metodę testu zieloną?
Grałem z collect
i Collectors
przez jakiś czas bez powodzenia.
(ImmutableMap
i newArrayList
są od Google guawy.)
Świetnie! Potrzebuję tylko jednej rzeczy, zamiast maksimum potrzebuję średniej. Jak mogę to zrobić? –
@FirasAlMannaa https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html#average-- –