创建频率图
所述 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