java - 计算字符串出现次数的最佳方式/数据结构

标签 java counting find-occurrences word-frequency

假设我有一个很长的字符串列表。我想计算每个字符串出现的次数。我不知道字符串的数量和类型(意味着:我没有所有可能字符串的字典)

我的第一个想法是创建一个 Map 并在每次再次找到 key 时增加整数。

但这感觉有点笨拙。有没有更好的方法来计算这些字符串的所有出现次数?

最佳答案

从 Java 8 开始,最简单的方法是使用流:

Map<String, Long> counts =
    list.stream().collect(
        Collectors.groupingBy(
            Function.identity(), Collectors.counting()));

在 Java 8 之前,您当前概述的方法工作得很好。 (Java 8+ 方式也基本上做同样的事情,只是语法更简洁)。

关于java - 计算字符串出现次数的最佳方式/数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52160271/

相关文章:

java - 计算 map 中值的出现次数

awk - 删除第一次和最后一次出现列值的行

java - 运行 Android 模拟器时出错

java - 通过反射向类添加新方法

C++如何制作一个计数循环来确定两个输入数字中哪个最小,并从那里开始计数

c# - 计算文本中字符串数组中元素的总出现次数

c++ - 使用 hashmaps c++ 查找最常用的词

java - JAXB:当我们有很多类型的 xmlMessage 时,如何在 xmlMessage 与其 Java 类之间进行映射以进行解码

java - while 和 for 循环在计算上有什么区别吗?

algorithm - (ACM) 如何用线段树统计[a,b]中有多少元素小于给定常数?