假设我有一个接受两个参数并返回一个值的函数,那么是否可能将Map转换为List并在Stream中作为非终端操作?
最接近的方法似乎是对Map使用forEach创建实例并将它们添加到预定义的List中,然后从该List开始新的Stream。或者是我错过了什么?
例如:经典问题“在一长串单词中找到出现频率最高的3个单词”。
wordList.stream().collect(groupingBy(Function.identity, Collectors.counting))).
现在我想要流式传输该地图的entrySet
sorted((a,b) -> a.getValue().compareTo(b.getValue))).limit(3).forEach(print...
T
实例的流。没有任何关于列表的痕迹。 - Marko Topolnikcollect
是一个终端操作,它不能出现在流的中间。 如果您想要一个生成值对的流步骤,然后是一个将它们折叠成单个值的后续步骤,那么您需要一个Pair<K,V>
容器类。 - Marko Topolnikdistinct()
步骤。 - Marko Topolnik