Java HashMap为某些键返回null值。 。 。有时

时间:2017-07-19 21:19:00

标签: java hashmap

我创建了一个hashmap,它包含一个键的字符串和一个对象作为值。但是,当我尝试检索某些值时,我得到一个null结果。

// This returns all the keys and their values.
    for (String key : DevicesUsed.devicesUsedMap.keySet()) {
        if(DevicesUsed.devicesUsedMap.containsKey(key)) {
            System.out.println(key + " exists");
            System.out.println(key + "\t" + DevicesUsed.devicesUsedMap.get(key));
        } else {
            System.out.println("Key does not exist.");
        }
    }

    // This only works for some of the keys, that worked in the above code.
    System.out.println(DevicesUsed.devicesUsedMap.get("WHITEALL"));     // Works.
    System.out.println(DevicesUsed.devicesUsedMap.get("REDCOVE"));      // Returns null.

screen shot of the console output

为什么有些键存在于一个块中而在另一个块中不存在,这很困惑。

2 个答案:

答案 0 :(得分:3)

在屏幕截图中,'WHITEALL exist'包含一个空格,但'REDCOVE exist' - 两个。

您似乎将'REDCOVE '作为密钥而不是'REDCOVE'

答案 1 :(得分:0)

从你的截图中,REDCOVE最后肯定有一个空间。尝试使用System.out.println(DevicesUsed.devicesUsedMap.get("REDCOVE "));