hashmap嵌套取值问题

zMhua_07 2009-03-09 02:20:05
小弟头一回用到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的值,该怎么写。
...全文
685 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
moonshowder 2009-03-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 zMhua_07 的回复:]
我在编译器里输入map0.get("1")后"."不出来get();
自己写上就有x;
[/Quote]
你取出来的没有转成MAP,当然不能get()了,建议在定义MAP的时候使用泛型~
zMhua_07 2009-03-09
  • 打赏
  • 举报
回复
找到毛病了
我外面hashmap的map0是这样写的:
Map map0 = new HashMap();
和Map<String, Map<String, String>> map0 = new HashMap<String, Map<String, String>>();
有点差距所一点不出来。
我是不是有点大头。谢谢各位指导。


dreamhunter_lan 2009-03-09
  • 打赏
  • 举报
回复
我的可以,你的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"));
}
}
zMhua_07 2009-03-09
  • 打赏
  • 举报
回复
我在编译器里输入map0.get("1")后"."不出来get();
自己写上就有x;
ouyangxiaokang6 2009-03-09
  • 打赏
  • 举报
回复

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);
zMhua_07 2009-03-09
  • 打赏
  • 举报
回复
我写完了出错提示
自动加了个(UIManager) 什么意思?
怎么强转?能细点说明吗?
mayuanfei 2009-03-09
  • 打赏
  • 举报
回复
很简单啊
map0.get("0").get("key2");

map0.get("1").get("key2");
当然这里有可能需要强转一下
mike_24 2009-03-09
  • 打赏
  • 举报
回复
关注

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧