Я ожидал, что следующие фрагменты эквивалентны:
Integer count = occurences.get(c);
if(count == null) {
count = 0;
occurences.put(c, count);
}
++count;
и
Integer count = occurences.get(c);
if(count == null) {
count = 0;
occurences.put(c, count);
}
occurences.put(c, count + 1);
Но когда я запускаю программу, первый фрагмент всегда имеет count
как 0.
Это почему? Поскольку Integer
является ссылкой в HashMap
, почему не отражается приращение, и мне нужно сделать put
?