java List<map>赋值的问题

publicStringtreatmentstatistics(@RequestParam(value="eplanid")Stringeplanid,Modelmode... public String treatmentstatistics(@RequestParam(value = "eplanid") String eplanid,Model model) {

// 由风险评估计划名称查询风险事件和风险应对计划名称
List<Map<String, String>> finishMapList = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
map.put("key", "A");
map.put("key", "A");
finishMapList.add(map);

map.put("key", "B");
map.put("key", "B");
finishMapList.add(map);
model.addAttribute("finishMapList", finishMapList);
return "rm/riskmanager/isfinishtreatment";

}
我的想法是list中有两个map,分别存
<key,A><key,A>和<key,B><key,B>,
但是实际却存的是
<key,B><key,B>和<key,B><key,key>
都存成后一个了。
展开
 我来答
wjm0506
2014-09-17 · TA获得超过147个赞
知道小有建树答主
回答量:259
采纳率:0%
帮助的人:173万
展开全部
List<Map<String, String>> finishMapList = new ArrayList<Map<String, String>>();
        Map<String, String> map = new HashMap<String, String>();
        map.put("key", "A");
        map.put("key", "A");
        finishMapList.add(map);
        
        map = new HashMap<String, String>(); //map要重新new不然还是上一个map
        map.put("key", "B");
        map.put("key", "B");
        finishMapList.add(map);
        model.addAttribute("finishMapList", finishMapList);
        return "rm/riskmanager/isfinishtreatment";
        
    }

map要重新new不然还是上一个map.

map.put("key", "B");其实是在修改map中的内容不是新的

不知道这样说你明不明白

不明白就继续问吧

百度网友faf4864ed6
2014-09-17 · 超过14用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:25.3万
展开全部
map是key/value的形式存数据的,你把所有的key都设成'key',那么先存的数据就被后面的覆盖了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heptnaol
2014-09-17 · TA获得超过7260个赞
知道大有可为答主
回答量:7120
采纳率:78%
帮助的人:1780万
展开全部
中间少了一句,map = new HashMap<String, String>()
map.put(key B);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
longxtuo
2014-09-17
知道答主
回答量:55
采纳率:100%
帮助的人:18.7万
展开全部
你需要重新new一个Map来保存B
Map<String, String> map1 = new HashMap<String, String>();
map.put("key", "A");
map.put("key", "A");
finishMapList.add(map);
Map<String, String> map2 = new HashMap<String, String>();
map.put("key", "B");
map.put("key", "B");
finishMapList.add(map);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友14f7e688aad
2014-09-17 · TA获得超过660个赞
知道小有建树答主
回答量:830
采纳率:0%
帮助的人:646万
展开全部
map.put("key", "A");

键名一样被覆盖了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
verge3
2014-09-17 · 超过32用户采纳过TA的回答
知道答主
回答量:90
采纳率:0%
帮助的人:80.7万
展开全部
Map集合是根据key 去存储数据的 所以当它们key 相同时是存储最新的一个 你可以使用list 或多new几个Map 集合去存储
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式