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);
        }               
原文地址:https://www.cnblogs.com/suni/p/9205627.html