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>
都存成后一个了。 展开
// 由风险评估计划名称查询风险事件和风险应对计划名称
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>
都存成后一个了。 展开
6个回答
展开全部
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中的内容不是新的
不知道这样说你明不明白
不明白就继续问吧
展开全部
map是key/value的形式存数据的,你把所有的key都设成'key',那么先存的数据就被后面的覆盖了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
中间少了一句,map = new HashMap<String, String>()
map.put(key B);
map.put(key B);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你需要重新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);
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
map.put("key", "A");
键名一样被覆盖了
键名一样被覆盖了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Map集合是根据key 去存储数据的 所以当它们key 相同时是存储最新的一个 你可以使用list 或多new几个Map 集合去存储
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询