日期:2014-05-20  浏览次数:21102 次

List<HashMap>中修改其中一个值
public List getList(){
List list = new ArrayList();
Map map1 = new HashMap();
Map map2 = new HashMap();
Map map3 = new HashMap();
Map map4 = new HashMap();
  map1.put("tid", "a");
map1.put("tablename", "上海");
list.add(map1);
map2.put("tid", "b");
map2.put("tablename", "北京");
list.add(map2);
map3.put("tid", "c");
map3.put("tablename", "天津");
list.add(map3);
map4.put("tid", "d");
map4.put("tablename", "深圳");
list.add(map4);

  return list;
}
这个list中 我想把map3中的“天津”改成“太原”,怎么改

------解决方案--------------------
((HashMap)list.get(2)).put("tablename","太原");
------解决方案--------------------
((HashMap)list.get(2)).put("tablename","太原");
刚不是发了一个帖子么
------解决方案--------------------
方法1,取得list中的对应map,重新设置tablename,即1L的代码
((HashMap)list.get(2)).put("tablename","太原"); 

方法2,重新生成一个map,设置好相应的值,然后替换掉list中的map
Map m = new HashMap();
m.put("tid", "c");
m.put("tablename", "太原");
list.set(2, m);

------解决方案--------------------
for(int i = 0; i < list.size(); i++) {
HashMap _map = (HashMap) list.get(i);
if("天津".equals(_map.get("tablename")) {
_map.put("tablename","太原");
}
}
------解决方案--------------------
map3.put("tablename", "太原");

hashmap自动替换原有同名键值!最简最直接。。。。直接重新put

------解决方案--------------------
探讨
for(int i = 0; i < list.size(); i++) {
HashMap _map = (HashMap) list.get(i);
if("天津".equals(_map.get("tablename")) {
_map.put("tablename","太原");
}
}