JAVA 如何获取存放在MAP中的list 对象?

Lista=newArrayList();HashMapb=newHashMap();b.put("a",a);然后我想取得b中的aList付给c.请问要怎样写,List... List a = new ArrayList();

HashMap b =new HashMap();
b.put("a",a);

然后我想取得b中的a List付给c.

请问要怎样写, List c = b.get("a");???怎样转型了?????
展开
 我来答
乌光QS
2012-09-13 · TA获得超过1365个赞
知道小有建树答主
回答量:464
采纳率:100%
帮助的人:447万
展开全部
一个List对象也无非是一个对象,在Map里存取放置都是一种方式,如果你确定取出来的是某类的对象,直接转型就可以了:
List c = (List)b.get("a");

在JDK1.5以上提供了泛型,能够更好地控制类型,减少强行转型的次数。比如我们如果知道这些List里的元素永远是String的话,你就可以写
List<String> a = new ArrayList<String>;
HashMap<String,List<String>> b =new HashMap<String,List<String>>();
b.put("a",a);
...
List<String> c = b.get("a");
最后一步不需要强行转型,而且如果在b.put("a",a);这一步如果你想往b里面放一个不是List<String>的东西,或者使用的key不是一个String,编译器就会抗议。

泛型学起来有一定难度,尤其是一些高级用法,写起来有时会觉得繁琐,但是我认为物有所值,能够帮助我们在编译期发现不少潜在问题,写出代码更强健。
百度网友75c5fbd53
2012-09-14 · 超过13用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:37.5万
展开全部
答案是:List c = (List)b.get("a");
你可以使用增强FOR循环来做 这样效率更高些。
比如将你的问题完善下:
//初始化数据
ArrayList<String> list = new ArrayList<String>();
list.add("test1");
HashMap<String,ArrayList<String>> map = new HashMap<String,ArrayList<String>>();
map.put("testMap",list);
//使用增强FOR循环输出结果
for(Map.Entry<String, ArrayList<String>> maps: map .entrySet()){
//rtnList就是你想要得到的List
ArrayList rtnList = maps.getValue();

//rtnKey就是map的key
String rtnkey = maps.getKey();

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
iwillsaber
2012-09-13 · TA获得超过482个赞
知道小有建树答主
回答量:545
采纳率:50%
帮助的人:284万
展开全部
汗!刚学java 没几天???

List c = (List)b.get("a");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式