
正文
Java8 使用stream 实现wordcount
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
案例:
public static void main(String[] args) { List<String> items = Arrays.asList("apple", "apple", "banana","apple", "orange", "banana", "papaya", "Hello","word","Hello","beijing","shanghai","china"); /** * 使用 groupingBy和counting */ Map<String, Long> wordCount = items .stream() .collect(Collectors.groupingBy(i -> i,Collectors.counting()) ); //无序结果 System.out.println(wordCount); // 创建stream再次排序 Map<String, Long> finalMap = new LinkedHashMap<>(); wordCount.entrySet().stream() .sorted(Map.Entry.<String, Long>comparingByValue() .reversed()) .forEachOrdered(e -> finalMap.put(e.getKey(), e.getValue())); // 有序结果 System.out.println(finalMap); }






