【发布时间】:2012-10-31 17:29:43
【问题描述】:
我有以下代码来计算数组中不同字符串的实例;
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 密钥桶下,对吧?还是我只是想得太多了?
【问题讨论】:
-
我觉得不错;我就是这样做的。试试看;)
-
@Vulcan 我正要这样做,但认为我的整个方法可能很糟糕,所以我想我会把它扔在这里。
-
好的代码应该使用
Map<K, V>接口。
标签: java hashmap equals hashcode