我希望这个问题对于本论坛来说不是太基本了,但是我们会看到的。我想知道如何重构一些代码以获得更好的性能,而这些性能已经运行了很多次。
假设我正在使用地图(可能是HashMap)创建一个单词频率列表,其中每个键是一个带有要计算单词的String,并且值是一个Integer,每次找到该单词的标记时都会增加。
在Perl中,增加这样的值非常容易:
$map{$word}++;
但是在Java中,它要复杂得多。这是我目前的操作方式:
int count = map.containsKey(word) ? map.get(word) : 0;
map.put(word, count + 1);
当然,哪个依赖于较新的Java版本中的自动装箱功能。我想知道您是否可以建议一种更有效的递增此值的方法。避开Collections框架并改用其他东西,甚至有良好的性能原因吗?
更新:我已经测试了几个答案。见下文。
慕运维8079593
相关分类