假设我有以下地图列表,
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));
Run Code Online (Sandbox Code Playgroud)
我想使用带有lambda表达式的Java 8流将每个用户的最低分数提取到地图中.期望的结果是
{user1=1, user2=5, user3=15}
Run Code Online (Sandbox Code Playgroud)
我试过这个并没有用,
Map<String, Integer> result = scores.stream()
.flatMap(m -> m.entrySet().stream())
.collect(Collectors.groupingBy(Map.Entry::getKey, Collectors.minBy(Comparator.comparingInt(Map.Entry::getValue))));
Run Code Online (Sandbox Code Playgroud)
谁能告诉我怎么做?
提前致谢.