建立頻率圖

所述 groupingBy(classifier, downstream) 集電極允許的收集 Stream 元件成 Map 由一組中的每個元素進行分類並執行上劃分在相同組中的元素的下游操作。

這個原則的一個典型例子是使用 Map 來計算 Stream 中元素的出現次數 。在此示例中,分類器只是標識函式,它按原樣返回元素。下游操作使用 counting()計算相等元素的數量。

Stream.of("apple", "orange", "banana", "apple")
      .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()))
      .entrySet()
      .forEach(System.out::println);

下游操作本身是一個收集器( Collectors.counting() ),它對 String 型別的元素進行操作,並生成 Long 型別的結果。collect 方法呼叫的結果是 Map<String, Long>

這將產生以下輸出:

banana = 1
orange = 1
apple = 2