我有以下两个HashMaps
,其中Student
是我创建的对象,格式为Student(String, String)
static HashMap<String, Student> hashMap = new HashMap<>();
static HashMap<String, HashMap<String, Student>> finalHashMap = new HashMap<>();
我创建了以下
Students
并将它们添加到hashMap
中,并且firstName
作为Key
Student st1 = new Student("julian", "rogers");
Student st2 = new Student("jason", "Smith");
hashMap.put("julian", st1);
hashMap.put("jason", st2);
然后我将
hashMap
添加到finalHashMap
中,并以firstName
的首字母作为key
finalHashMap.put("j", hashMap);
如何使用键
j
返回哈希图?我尝试创建一个新的哈希图并使用
get()
,但是它没有用。我得到一个null pointer exception
static HashMap<String, Student> hashMapTemp = new HashMap<>();
hashMapTemp.putAll(finalHashMap.get('j'));
for (String key : hashMapTemp.keySet())
{
System.out.println(key + " " + hashMapTemp.get(key));
}
输出值
java.lang.NullPointerException
at java.util.HashMap.putAll(Unknown Source)
注意:我尝试使用
put()
并得到了同样的错误。 最佳答案
hashMapTemp.putAll(finalHashMap.get('j'));
我认为应该是:hashMapTemp.putAll(finalHashMap.get("j"));
您在finalHashMap
中的键是一个字符串,而不是一个字符。
关于java - 返回嵌套的哈希图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26205145/