Zakładając, mam następującą listę map,Jak znaleźć minimalny wynik każdego użytkownika z listy map wykorzystujących Java 8 strumień
List<Map<String, Integer>> scores = new ArrayList<>();
scores.add(Collections.singletonMap("user1", 3));
scores.add(Collections.singletonMap("user3", 15));
scores.add(Collections.singletonMap("user1", 1));
scores.add(Collections.singletonMap("user2", 5));
scores.add(Collections.singletonMap("user2", 23));
scores.add(Collections.singletonMap("user1", 10));
chciałbym wyodrębnić minumum wynik każdego użytkownika w mapuj za pomocą strumienia Java 8 z wyrażeniami lambda. Pożądany wynik byłby
{user1=1, user2=5, user3=15}
Próbowałem to i to nie działa,
Map<String, Integer> result = scores.stream()
.flatMap(m -> m.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.minBy(Comparator.comparingInt(Map.Entry::getValue))));
Czy ktoś może mi powiedzieć jak to zrobić?
Z góry dziękuję.
Dzięki za wyjaśnienie. – user5245796