哈希映射在java中返回null

时间:2015-11-24 12:54:52

标签: java hashmap

我正在使用java HashMap

public static HashMap<String, String> config = new HashMap<String, String>();

当我打印值时:

System.out.println(config.toString());

结果是:

{key1 = val1, key2 = val2}

但是在打印钥匙时:

public String returnConfigByKey(String key){ 
        String result = "";
        result =(String) config.get(key); //key = key1
        System.out.println("result " + result);
        return result;
    }

结果是:

result null

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

HashMap.toString()在键入后不会添加空格。

因此,地图中的键"key1 ""key1 "都以空格结尾。您应该能够使用config.get("key1 ")

检索值

答案 1 :(得分:1)

这是Minimal, Complete, and Verifiable example

HashMap<String, String> config = new HashMap<String, String>();
config.put("key1", "val1");
config.put("key2", "val2");
System.out.println(config);
System.out.println("result " + config.get("key1"));

输出

{key1=val1, key2=val2}
result val1

正如您所看到的,result打印正常,但地图的打印显示=符号周围的任何空格。

所以,看看你展示了什么:

HashMap<String, String> config = new HashMap<String, String>();
config.put("key1 ", " val1");
config.put("key2 ", " val2");
System.out.println(config);
System.out.println("result " + config.get("key1"));

输出

{key1 = val1, key2 = val2}
result null

这完全反映了您所看到的内容,并显示问题是密钥中的尾随空格。