查找项目在数组中出现了多少次=解释代码[closed]

问题描述 投票:-6回答: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));
        }
    }
}
java methods count hashmap items
1个回答
1
投票

最初,您的哈希图不包含任何值

 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);
}
© www.soinside.com 2019 - 2024. All rights reserved.