您能否解释一下此代码如何工作?我不明白这段代码是如何工作的。
HashMap<String, Integer> countMap = new HashMap<String, Integer>();
for (String string : strArray) {
if (!countMap.containsKey(string)) {
countMap.put(string, 1);
} else {
Integer count = countMap.get(string);
count = count + 1;
countMap.put(string, count);
}
}
printCount(countMap);
}
private static void printCount(HashMap<String, Integer> countMap) {
Set<String> keySet = countMap.keySet();
for (String string : keySet) {
System.out.println(string + " : " + countMap.get(string));
}
}
}
最初,您的哈希图不包含任何值
HashMap<String, Integer> countMap = new HashMap<String, Integer>();
现在,您正在假定的字符串列表strArray上运行循环。
for (String string : strArray) {
这里您正在检查地图是否包含迭代键,即字符串
它不用于第一次迭代(或任何不在计数图中的键,因此它将字符串作为键,并将1作为值
if (!countMap.containsKey(string)) {
countMap.put(string, 1);
} else {
如果countMap包含字符串,那么您将获取给定键的值,并在该值中添加一个并将其放回countmap中(基本上用增量值替换旧值)
Integer count = countMap.get(string);
count = count + 1;
countMap.put(string, count);
}
}
稍后,您正在打印密钥及其值。
printCount(countMap);
}