Следующее мое требование: я должен подсчитать появление определенного элемента в списке, а затем распечатать элемент вместе с его количеством встречаемости. Для этого у меня есть следующий код:Как получить последнее значение дублирующего ключа на карте в java?
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' приращений * после * он назначен, а не раньше. –