我有一个单词列表:
List<String> words = Arrays.asList("Hello alan i am here where are you"+
"and what are you doing hello are you there");
如何获取在列表中重复超过一次的前七个单词,并按降序排列?然后,单个单词应按字母顺序排列。因此,以上内容的输出应为这些前七个单词。
you (3)
are (2)
hello (2)
alan (1)
am (1)
and (1)
doing (1)
我希望你能使用Java 8中的流和lambda表达式来完成这个任务。
我尝试了以下方法: 首先对列表进行排序 其次获取单词的映射及其在单词列表中的数量。
List<String> sortedWords = Arrays.asList("Hello alan i am here where are you and what are you doing hello you there".split(" "))
.stream().sorted().collect(toList());
Map<String, Long> collect =
sortedWords.stream().collect(groupingBy(Function.identity(), counting()));