使用 groupBy 计算 Java 8 流中的出现次数
在 Java 8 流中,groupBy 方法允许您根据特定属性对元素进行分组或值。当与其他收集器结合使用时,例如计数,您可以有效地计算流中重复元素的出现次数。
让我们考虑一个示例:
List<String> list = Arrays.asList("Hello", "Hello", "World"); Map<String, Long> wordToFrequency = list.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
在此示例中,我们使用具有以收集器作为参数的重载的收集方法。在收集器内部,我们使用 groupingBy 根据项目的字符串值(标识函数)对项目进行分组。然后我们将其与 Collectors.counting() 结合起来,统计每个唯一字符串的出现次数。
结果,我们得到一个映射,其中每个键都是唯一字符串,对应的值是在名单。在这种情况下,地图将包含:
{Hello=2, World=1}
这种方法非常高效且易于使用,适合需要根据特定属性计算流中元素出现次数的各种场景。请记住,您还可以在适当的时候利用 groupingByConcurrent 来提高性能。
以上是如何使用 Java 8 Streams 有效地计算重复元素的出现次数?的详细内容。更多信息请关注PHP中文网其他相关文章!