Наиболее эффективный способ увеличить значение карты в Java
Я надеюсь, что этот вопрос не считается слишком основным для этого форума, но посмотрим. Мне интересно, как рефакторинг кода для улучшения производительности, что становится запустить кучу раз.
скажем, я создаю список частот слов, используя карту (возможно, хэш-карту), где каждый ключ представляет собой строку со словом, которое подсчитывается, а значение-целое число, которое увеличивается каждый раз, когда токен слова найден.
в Perl приращение такого значения будет тривиально просто:
$map{$word}++;
но в Java, это гораздо сложнее. Вот как я сейчас это делаю:
int count = map.containsKey(word) ? map.get(word) : 0;
map.put(word, count + 1);
который, конечно, опирается на функцию автобоксинга в новых версиях Java. Интересно, можете ли вы предложить более эффективный способ увеличения такого значения. Есть ли даже хорошие причины производительности для избегания структуры коллекций и использования чего-то другого вместо этого?
обновление: я сделал тест нескольких ответов. Видеть под.
Comments