我對如何.. 防爆計數的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