小弟头一回用到hashmap,思路比较乱。
我现在有个嵌套的hashmap.里面的hashmap是:
Map map1 = new HashMap();
map1.put("hey1","val1");
map1.put("hey2","val2");
map1.put("hey3","val3");
map1.put("hey4","val4");
外面的hashmap:
Map map0 = new HashMap();
map0.put("0",map1);
map0.put("1",map1);现在我想取key2和key4的值,该怎么写。

解决方案 »

  1.   

    很简单啊
    map0.get("0").get("key2");

    map0.get("1").get("key2");
    当然这里有可能需要强转一下
      

  2.   

    我写完了出错提示
    自动加了个(UIManager) 什么意思?
    怎么强转?能细点说明吗?
      

  3.   


    Map <String, String>map1 = new HashMap<String, String>(); 
    map1.put("hey1","val1"); 
    map1.put("hey2","val2"); 
    map1.put("hey3","val3"); 
    map1.put("hey4","val4");  Map map0 = new HashMap(); 
    map0.put("0",map1); 
    map0.put("1",map1); 
    HashMap hey2 = (HashMap)map0.get("0");
    String resultHey2 = (String)hey2.get("hey2");
    System.out.println("The value of the map is:" + resultHey2);

    HashMap hey4 = (HashMap)map0.get("1");
    String resultHey4 = (String)hey4.get("hey4");
    System.out.println("The value of the map is:" + resultHey4);
      

  4.   

    我在编译器里输入map0.get("1")后"."不出来get();
    自己写上就有x;
      

  5.   

    我的可以,你的key1,key2……都写成了hey1,hey2……
    我就跟着错,
    我并不清楚你这个程序是什么意思,因为map0中的两个EntrySet里都有map1,我就随便取一个:import java.util.HashMap;
    import java.util.Map;public class Test {
    public static void main(String[] args) {
    Map<String, String> map1 = new HashMap<String, String>();
    map1.put("hey1","val1");
    map1.put("hey2","val2");
    map1.put("hey3","val3");
    map1.put("hey4","val4");

    Map<String, Map<String, String>> map0 = new HashMap<String, Map<String, String>>();
    map0.put("0",map1);
    map0.put("1",map1);

    System.out.println(map0.get("0").get("hey2"));
    }
    }
      

  6.   

    找到毛病了
    我外面hashmap的map0是这样写的:
        Map map0 = new HashMap(); 
    和Map<String, Map<String, String>> map0 = new HashMap<String, Map<String, String>>();
    有点差距所一点不出来。
    我是不是有点大头。谢谢各位指导。
      

  7.   

    你取出来的没有转成MAP,当然不能get()了,建议在定义MAP的时候使用泛型~