以下是我的要求:我必須計算列表中特定項目的出現次數,然後將項目與其出現次數一起打印出來。爲此,我有以下代碼:如何在java中的Map中獲取重複鍵的最新值?
public void countOccurrences(Collection<String> list){
Map<String, Integer> occurrenceMap = new HashMap<String, Integer>();
for(String obj: list){
Integer numOccurrence = occurrenceMap.get(obj);
if(numOccurrence == null){
//first count
occurrenceMap.put(obj, 1);
} else{
occurrenceMap.put(obj, numOccurrence++);
}
}
for (Map.Entry<String, Integer> entry : occurrenceMap.entrySet()) {
System.out.println(entry.getKey()+" : "+entry.getValue());
}
}
現在說的加入到我的列表示例項目如下:
list.add("apple");
list.add("apple");
list.add("apple");
list.add("banana");
list.add("banana");
list.add("mango");
,我很期待的輸出是
apple:3
banana:2
mango:1
但是,即將到來的輸出是
apple:1
banana:1
mango:1
我在這裏錯過了什麼?
嘗試++ numOccurence而不是 – u6f6o
'* ++'在*分配之後增加'x' *,而不是之前。 –