计算数组列表中单词的出现次数
我有一个重复条目的单词。ArrayList
我想对数据结构中每个单词的出现次数进行计数和保存。
我该怎么做?
我有一个重复条目的单词。ArrayList
我想对数据结构中每个单词的出现次数进行计数和保存。
我该怎么做?
如果你没有一个巨大的字符串列表,实现它的最短方法是使用方法,如下所示: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
有很多可能性。快速实现的解决方案可能是使用字符串是每个单词,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);
}