java Map<String,ArrayList<String>> 如何转化为Map<String,List<String>>?

 我来答
永清季一恨1N
2011-11-22 · TA获得超过918个赞
知道小有建树答主
回答量:1684
采纳率:0%
帮助的人:1314万
展开全部
list是个接口,arrayList是个实体类。。。
你要是有需求这样转化就相当于要将arrayList转化为List
如果真出现这种情况就说明你声明的就出了问题

要转化也可以,只不过也没必要

转化的方法:重新定义一个Map对象,将其泛型定义为<String,List<String>>
然后给此Map赋予以前的key

例子:
//模拟已存在的Map<String, ArrayList<String>>类型数据
//其key为"number",value为1-100
ArrayList<String> arList = new ArrayList<String>();
Map<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
for (int i = 0; i < 100; i++) {
arList.add((1+i)+"");
}
map.put("number", arList);
//模拟数据结
List<String> list = new ArrayList<String>();
list.addAll(arList);
Map<String,List<String>> map2 = new HashMap<String,List<String>>();
map2.put("number", list);

如果key为多个值,请用iterator进行全部遍历。

另外,出方法的时候最好将原有的引用置空,以方便GC可以在第一时间回收
追问
是这样
我实体bean里面定义的private Map> awardLogMap;
在serviceImpl里面有这样一个方法,返回的是Map> 类型。
我现在想把方法返回值set到实体Bean里面报类型不能转化
追答
为神马补充了成二楼了  。。。

推荐你将实体类里面的直接换成
private Map> awardLog ->>>>>
private Map> awardLog

这样就行了

一般对List Map这一类声明,最好都是用接口声明,用类实例化
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HttpChu
2011-11-22 · TA获得超过409个赞
知道小有建树答主
回答量:375
采纳率:100%
帮助的人:356万
展开全部
ArrayList<E>实现了List<E>接口,由于多态的特性,不用转换。
追问
恩恩,你说的这个那个我知道,Map>里面的List就是List list=new ArrayList();现在问的是Map> 如何转化为Map>,这个类型不能直接转换?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式