使用 groupBy 计算出现次数
Java 流中的 groupBy 方法允许我们根据指定的键将元素收集到组中。在本例中,我们希望按字符串的值对字符串进行分组,并计算每个组中的出现次数。
为了实现此目的,我们可以使用需要第二个收集器的 groupBy 重载。我们将提供 Collectors.counting() 作为此收集器,它将计算每个组中的元素。
以下是使用流实现此操作的方法:
import java.util.*; import java.util.stream.*; class Test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("Hello"); list.add("Hello"); list.add("World"); Map<String, Long> counted = list.stream() .collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); System.out.println(counted); } }
这将产生以下结果输出:
{Hello=2, World=1}
映射包含两个条目,“Hello”映射到 2,“World”映射到 1。这表示输入列表中每个单词出现的次数。
注意,我们还可以使用 groupingByConcurrent 来提高效率,特别是在并发执行安全的场景下。
以上是如何使用 Java Streams 计算列表中字符串的出现次数?的详细内容。更多信息请关注PHP中文网其他相关文章!