我有以下兩種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
HashMap的?
我試着創建一個新的hashmap並使用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()
,也得到了同樣的錯誤。
你在哪裏得到NPE? – 2014-10-05 17:15:56
爲什麼你將結果添加到'hashMapTemp'而不是隻是說'for(String key:finalHashMap.get(「j」))'? – Krease 2014-10-05 17:18:24
作爲一個說明,如果將它作爲一個自包含的類來演示問題而不是一堆代碼片段,將來可能更容易解析這樣的事情。 – Krease 2014-10-05 17:19:54