我对如何.. 防爆计数的ArrayList匹配的元素,在Java中的问题:我的ArrayList中包含[体育,体育,球,球员,体育]如何计算的ArrayList中匹配的元素,在Java中
我需要像输出:
word sport frequency 3
word ball frequency 1
word player frequency 1
感谢提前
我对如何.. 防爆计数的ArrayList匹配的元素,在Java中的问题:我的ArrayList中包含[体育,体育,球,球员,体育]如何计算的ArrayList中匹配的元素,在Java中
我需要像输出:
word sport frequency 3
word ball frequency 1
word player frequency 1
感谢提前
使用地图。
(这当然会用Guava Multiset
容易得多,如其他人所说)
如果你愿意在外部依赖拉:谷歌的番石榴库包含一个Multiset的各种实现方式,这是你想要的东西的名字。如果你不愿意依赖这个库,你至少可以看看源代码。 Multiset基本上是某种类型的映射到保存集合中特定项目的计数的整数。
当然我假设你实际上能够用Multiset替换你的ArrayList。
复制内容到另一个数据结构:
Map<String, Integer>
密钥(String
)这个词,所述Integer
值存储计数。如果你想要的话,以字母顺序排序
Map<String, Integer> occurrencies = new HashMap<String, Integer>();
for (String word : list) {
occurrencies.put(word, occurrencies.containsKey(word)
? occurrencies.get(word) + 1 : 1);
}
for (Entry<String, Integer> entry : occurrencies.entrySet()) {
System.out.println("Word: "+entry.getKey()
+ ", occurences: "+entry.getValue());
}
,使用TreeMap
代替HashMap
:
你也可以对列表进行排序,然后算一个词重复了多少遍
添加字母顺序排列的奖金输出中
想象一下,您一次只能看到该数组列表中的一个项目。想象一下。你将如何解决这个问题? – blizpasta 2011-05-30 14:55:52