添加到hashmap内的hashmap

时间:2013-03-24 17:50:19

标签: java hashmap

这就是我所拥有的:

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

但我在添加值时遇到问题,因为内部hashmap没有名称(注意:它不应该)。我实际上是在尝试将数组列表添加到HashMap中的第一个Integer中,所以我尝试的是:

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

它非常不喜欢,我对如何做到完全无能为力。

4 个答案:

答案 0 :(得分: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>());

之后,您可以将Integer值添加到第二个HashMap:

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

获取值:

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

答案 1 :(得分:1)

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

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

然后你可以把你的价值放进去:

innerData.put(x, y);

答案 2 :(得分: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);

答案 3 :(得分:0)

就这样做:

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

其中intKey和intVal是Integer类型Key和Integer类型值。