public class Test {
private static HashMap<String, Integer> mp = new HashMap<String, Integer>();
public static void main(String[] args) {
String[] tst = new String[] { "ABC", "DEF", "DEF", "DEF","ABC", "DEF", "ABC" };
checkMap(tst);
}
public static void checkMap(String[] str) {
for (String st : str) {
if (!mp.containsKey(st)) {
mp.put(st, 1);
}
else {
Integer ct = mp.get(st);
if(ct!=null)
{
ct++;
mp.put(st, ct);
}
}
}
for (Map.Entry<String, Integer> entry : mp.entrySet()) {
System.out.println(entry.getKey() + " ocurrs " + entry.getValue()+ " times");
}
}
代码的输出结果为 -
ABC ocurrs 3 times
DEF ocurrs 4 times
这里涉及到if/else语句的问题 -
if (!mp.containsKey(st)) {
mp.put(st, 1);
}
else {
Integer ct = mp.get(st);
if(ct!=null)
{
ct++;
mp.put(st, ct);
}
}
当我们还没有在哈希映射表中放入任何条目(哈希映射表为空)时,它是基于什么工作的?如果这是一个非常基本的问题,那么请原谅,但我找不到任何在线解释这个问题的答案。我对if/else循环中的内容感到困惑。 此外,这里是一行代码 -
Integer ct = mp.get(st);
当HashMap实际上是空的时,我们如何获取键被映射到的值呢? 我试图将此与数组相关联 - 如果查询创建但未初始化的数组的元素,则会抛出空指针异常。 请有人解释一下对于HashMap如何工作。 再次道歉,因为提出了这样一个基本的问题。