计算数组列表中单词的出现次数

2022-09-02 14:19:28

我有一个重复条目的单词。ArrayList

我想对数据结构中每个单词的出现次数进行计数和保存。

我该怎么做?


答案 1

如果你没有一个巨大的字符串列表,实现它的最短方法是使用方法,如下所示:Collections.frequency

List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("bbb");
list.add("aaa");

Set<String> unique = new HashSet<String>(list);
for (String key : unique) {
    System.out.println(key + ": " + Collections.frequency(list, key));
}

输出:

aaa: 2
bbb: 1

答案 2

有很多可能性。快速实现的解决方案可能是使用字符串是每个单词,Integer是每个单词的计数。Map<String, Integer>

遍历列表并增加其映射中的相应值。如果还没有条目,请添加一个值为 1 的条目。

wordList = ....;

Map<String, Integer> wordCount = new HashMap<String, Integer>();

for(String word: wordList) {
  Integer count = wordCount.get(word);          
  wordCount.put(word, (count==null) ? 1 : count+1);
}

推荐