List添加map,后添加的map覆盖前面的问题
List resultList = new ArrayList(); Map map = new HashMap(); while(rs.next()){ String userid = rs.getString("userid"); String staffName = rs.getString("staffname"); String busName = rs.getString("bus_name"); String loginId = rs.getString("loginid"); Long status = rs.getLong("status"); map.put("userid", userid); map.put("staffName",staffName); map.put("busName", busName); map.put("loginId", loginId); map.put("status", status); resultList.add(map); }
上面这段代码最后resultList的map元素都是相同的
解决办法 外面的map先不要赋值,while循环的时候每次都是同一个map,在循环里面赋值,每次都是一个新的map集合,就不会覆盖前面的值
List resultList = new ArrayList(); Map map = null; while(rs.next()){ map = new HashMap(); String userid = rs.getString("userid"); String staffName = rs.getString("staffname"); String busName = rs.getString("bus_name"); String loginId = rs.getString("loginid"); Long status = rs.getLong("status"); map.put("userid", userid); map.put("staffName",staffName); map.put("busName", busName); map.put("loginId", loginId); map.put("status", status); resultList.add(map); }