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

求助List的add()方法
本帖最后由 whitefox36 于 2014-03-06 22:29:12 编辑
代码如下,从数据库查到记录后,放到map里,然后再把map放到list里,根据查询的条件可以查到2条记录,现在问题出现了。。。
第一次输出map = map1    list=[map1]         i=0
第二次输出map = map2    list=[map2,map2]    i=1
希望的结果是第二次输出    list=[map1,map2]
求解错出在哪里

                while(rs.next()){
                String archiveNo = rs.getString("archive_no");
                String titleProper = rs.getString("title_proper");
                String yearCode = rs.getString("year_code");
                String fileCode = rs.getString("file_code");
                map.put("archiveNo",archiveNo);
                map.put("titleProper",titleProper);
                map.put("yearCode",yearCode);
                map.put("fileCode",fileCode);
                System.out.println("map is "+map);
                list.add(i,map);
                System.out.println("list is "+list);
                System.out.println("i = "+i);
                i++;
                }


------解决方案--------------------
把map的实例化放到while循环里面去,你放在外面,只指定了一个地址,所以后面put的时候把前面的覆盖了,所以你看到的都是最新的值。放到循环里面,你懂的。。
		while (rs.next()) {
  map = new HashMap();

}