2013-03-24 69 views
2

这里面是我:添加到一个HashMap一个HashMap

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

但我无法增加值这一点,因为内部HashMap中没有一个名称(注意:它不是”应该是)。实际上,我想一个数组列表,添加到HashMap中的第一个整数所以我想是这样的:

data.put(var, data.get(array.get(x), y)); 

它非常不喜欢和我完全无能,如何做到这一点。

+0

是什么array.get(x)和y的值? – 2013-03-24 17:53:41

+0

我建议你看看番石榴图书馆Mulitmap。 https://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained#Multimap – evgenyl 2013-03-24 17:56:23

回答

0
HashMap<String,HashMap<Integer,Integer>> data = 
      new HashMap<String,HashMap<Integer,Integer>>(); 
((Map)data.get("keyname")).get(1); 

,并随后:

((Map)data.get("keyname")).get(1).put(2); 
+0

请注意,第二个地图使用整数 – Trinimon 2013-03-24 18:05:53

+0

@André啊谢谢,因为我错过了更新。 – Woot4Moo 2013-03-24 18:21:37

0

只要做到这一点是这样的:

data.put(var, new HashMap(intKey, intVal)); 

其中intKey和INTVAL是整型键和整型值。

5

注意

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

只创建了 “外” HashMap实例。在此声明之后,您有一个空的HashMap,它将字符串作为键,并将HashMap<Integer, Integer>作为值。

你可以用这个的HashMap<Integer, Integer>一个实例添加到data

data.put("myKey", new HashMap<Integer, Integer>()); 

之后,你可以增加整数值到第二HashMap的:

data.get("myKey").put(123, 456); // use 123 as key and 456 as value 

获取的值返回:

data.get("myKey").get(123); // returns 456 
1

您必须先获得内部哈希映射:

HashMap<Integer,Integer> innerData = data.get(var); 

然后你就可以把你的价值到它:

innerData.put(x, y);