Java 查找项目在数组中出现的次数=解释代码
你能解释一下这个代码是如何工作的吗? 我不明白这个代码是如何工作的Java 查找项目在数组中出现的次数=解释代码,java,methods,count,hashmap,items,Java,Methods,Count,Hashmap,Items,你能解释一下这个代码是如何工作的吗? 我不明白这个代码是如何工作的 HashMap<String, Integer> countMap = new HashMap<String, Integer>(); for (String string : strArray) { if (!countMap.containsKey(string)) { countMap.put(string, 1
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 countMap=newhashmap();
用于(字符串:strArray){
如果(!countMap.containsKey(字符串)){
countMap.put(字符串,1);
}否则{
整数计数=countMap.get(字符串);
计数=计数+1;
countMap.put(字符串,计数);
}
}
打印计数(countMap);
}
私有静态void打印计数(HashMap countMap){
Set keySet=countMap.keySet();
for(字符串:键集){
System.out.println(字符串+”:“+countMap.get(字符串));
}
}
}
最初,hashmap不包含任何值
HashMap<String, Integer> countMap = new HashMap<String, Integer>();
在这里,您要检查映射是否包含迭代键,即字符串
它在第一次迭代(或countmap中不包含的任何键)中不使用,因此它将字符串作为键,1作为值
if (!countMap.containsKey(string)) {
countMap.put(string, 1);
} else {
如果countMap包含该字符串,则获取给定键的值,并在该值中添加一个值,然后将其放回countMap(基本上用递增值替换旧值)
稍后,您将打印密钥及其值
printCount(countMap);
}
应该多解释一下。基本概念是将数组中的字符串作为键放入hashmap中,然后增加搜索发生的计数。如果某个特定字符串不在hashmap中,请将该字符串添加为键,并将计数设为1,然后继续增加计数。谢谢。你的链接非常有用。这意味着什么:?整数j=count.get(i);count.put(i,(j==null)?1:j+1;让我为您细分:
Integer j=count.get(i)代码>从hashmap获取当前的i计数count.put(i,
part将i作为键放入hashmap。(j==null)?1:j+1)
检查当前计数是否为null(意味着要添加的项不在映射中)初始化计数,否则1将获取当前计数并增加1。希望这是有道理的。
Integer count = countMap.get(string);
count = count + 1;
countMap.put(string, count);
}
}
printCount(countMap);
}