Ad *_*tum 1 java collections java-stream
我正在尝试使用 实现以下场景,Stream API
但没有成功。
我有以下图表。键是人的名字,集合是人的朋友的名字(键)。
Map<String, Set<String>> fooGraph
Run Code Online (Sandbox Code Playgroud)
我想根据一个人的朋友数量(受欢迎程度)来排序 ArrayList。
例如,
这是fooGraph
它的价值观
x -> a,b,c
y -> a
z -> a,b,c,d,e,f
t -> a,b,c,d
Run Code Online (Sandbox Code Playgroud)
归根结底,我想要一个基于一个人的受欢迎程度的列表。该列表应如下所示
z, t, x, y
Run Code Online (Sandbox Code Playgroud)
如何实现Stream API
?
List<String> sorted = fooGraph.entrySet()
.stream()
.sorted(Comparator.comparing(e -> e.getValue().size(), Comparator.reverseOrder()))
.map(Map.Entry::getKey)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)