List添加map,后添加的map覆盖前面的问题

时间:2022-02-05 08:22:32
        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);
}