2016-10-09 80 views
1

我有一個HashMap,其中包含一個HashMap作爲值。我想將一個鍵值對添加到被視爲值的HashMap中。我寫了這樣的東西將元素添加到HashMap中的HashMap中

HashMap<String, HashMap<String, Integer>> record= new HashMap<>(); 
record.put("John",....)// I am not sure what to put here 

這怎麼可以做到?

回答

2
//get innerMap using key for record map 
innerMap = record.get("John"); 
if(innerMap == null){ // do not create new innerMap everyTime, only when it is null 
    innerMap = new HashMap<String, Integer>(); 
} 
innerMap.put("Key", 6); // put using key for the second/inner map 
record.put("John", innerMap) 
2

這樣,此值必須存儲這樣的:

HashMap<String,Integer> value = new HashMap<>(); 
value.put("Your string",56); 

然後添加該值的Hashmap到您記錄的HashMap是這樣的:

record.put("John",value); 
+0

「你整」 爲整數不會工作。檢查格式。 – Jonatan

+0

是的,但我認爲解釋目的是可以的:P –

2
HashMap<String, HashMap<String, Integer>> record= new HashMap<>(); 
HashMap hm = new HashMap<>(); 
hm.put("string", 1); 
record.put("John", hm); 
1

首先,你必須得到一個HashMap的實例

HashMap<String, Integer> map = new HashMap<>(); 
map.put("key", 1); 

然後

recore.put("John", map); 
1

您可以使用這樣的 -

HashMap<String, HashMap<String, Integer>> record= new HashMap<String, HashMap<String, Integer>>(); 

    HashMap<String, Integer> subRecord = new HashMap<String, Integer>(); 
    subRecord.put("Maths", 90); 
    subRecord.put("English", 85); 

    record.put("John",subRecord); 
0

我見過很多答案,如果您需要關於如何從內部的Hashmap取值請參考此信息。

HashMap<String, HashMap<String, Integer>> record= new HashMap<>(); 
    Map<String, Integer> innerMap = new HashMap<String, Integer>();  
    innerMap.put("InnerKey1", 1); 
    innerMap.put("InnerKey2", 2); 

的值存儲到外部的Hashmap

record.put("OuterKey", innerMap); 

這是你如何檢索值

Map<String, Integer> map = record.get("OuterKey"); 
    Integer myValue1 = map.get("InnerKey1"); 
    Integer myValue2 = map.get("InnerKey2");