哈希映射和空值?

2022-08-31 12:52:06

如何将空值传递到哈希映射中?
以下代码段适用于填充的选项:

HashMap<String, String> options = new HashMap<String, String>();  
options.put("name", "value");
Person person = sample.searchPerson(options);  
System.out.println(Person.getResult().get(o).get(Id));    

所以问题是必须在选项和/或方法中输入什么才能传入空值?
我尝试了以下代码,但没有成功:

options.put(null, null);  
Person person = sample.searchPerson(null);    

options.put(" ", " ");  
Person person = sample.searchPerson(null);    

options.put("name", " ");  
Person person = sample.searchPerson(null);  

options.put();  
Person person = sample.searchPerson();    

答案 1

哈希映射同时支持键和值null

http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html

...并允许空值和空键

所以你的问题可能不是地图本身。


答案 2

您可以注意以下可能性:

1. 在地图中输入的值可以是 。null

但是,对于多个键和值,它只需要一次空键值对。null

Map<String, String> codes = new HashMap<String, String>();

codes.put(null, null);
codes.put(null,null);
codes.put("C1", "Acathan");

for(String key:codes.keySet()){
    System.out.println(key);
    System.out.println(codes.get(key));
}

输出将为:

null //key  of the 1st entry
null //value of 1st entry
C1
Acathan

2. 您的代码只会执行一次null

options.put(null, null);  
Person person = sample.searchPerson(null);   

这取决于你的方法的实现,如果你想多个值是,你可以相应地实现searchPersonnull

Map<String, String> codes = new HashMap<String, String>();

    codes.put(null, null);
    codes.put("X1",null);
    codes.put("C1", "Acathan");
    codes.put("S1",null);


    for(String key:codes.keySet()){
        System.out.println(key);
        System.out.println(codes.get(key));
    }

输出:

null
null

X1
null
S1
null
C1
Acathan