我有以下代码来计算数组中不同字符串的实例;
String words[] = {"the","cat","in","the","hat"};
HashMap<String,Integer> wordCounts = new HashMap<String,Integer>(50,10);
for(String w : words) {
Integer i = wordCounts.get(w);
if(i == null) wordCounts.put(w, 1);
else wordCounts.put(w, i + 1);
}
这是正确的做法吗?一个简单的任务似乎有点啰嗦。结果HashMap
对我很有用,因为我将按字符串对其进行索引。
我担心线路
else wordCounts.put(w, i + 1);
可能会插入第二key-value
对,因为
new Integer(i).equals(new Integer(i + 1));
会是假的,所以两个Integers
最终会在同一个String
密钥桶下,对吧?还是我只是过度思考自己陷入了困境?