当前位置: 代码迷 >> J2SE >> java中ArrayList的add方法值覆盖有关问题
  详细解决方案

java中ArrayList的add方法值覆盖有关问题

热度:6   发布时间:2016-04-23 20:28:49.0
java中ArrayList的add方法值覆盖问题。
我用add添加值后,遍历ArrayList里面的值,发现都是最后一个值,前面add进去的都被覆盖掉了,真心不明白,网上说的都是把对象在while循环里面new出来,我也懂,并且确实是这么做的,但是还是不行,不知道为什么,求各位码友帮忙。
代码如下:

ResultSet resultSet=SqlConnector.SqlSearch_result(sqlcom_goods);
ArrayList<GoodDetails_data> gd_arrayList=new ArrayList<GoodDetails_data>();
GoodDetails_data goodDetails_data;
while(resultSet.next())
{
goodDetails_data=new GoodDetails_data();
goodDetails_data.setGoodID(resultSet.getInt("goodsID"));
goodDetails_data.setSalerID(resultSet.getInt("salerID"));
goodDetails_data.setGoodTitle(resultSet.getString("title"));
goodDetails_data.setCategory(resultSet.getString("category"));
goodDetails_data.setPrice(resultSet.getString("price"));
goodDetails_data.setDescible(resultSet.getString("de"));
goodDetails_data.setPic(resultSet.getString("pic"));
// System.out.println("resultset:"+goodDetails_data.getGoodTitle());
gd_arrayList.add(goodDetails_data);
System.out.println("arraylist:"+gd_arrayList.get(0).getGoodTitle());

}


------解决方案--------------------
引用:
这个是我把第一个值输出了下,发下他一直在变,循环结束后变成最后一个值了


说明你根本没有遍历ArrayList。

for (int i=0;i<gd_arrayList.size();i++) {
  System.out.println("arraylist:"+gd_arrayList.get(i).getGoodTitle());
}
------解决方案--------------------
引用:
坑爹呢!
while(resultSet.next())
{}

应该是
while(resultSet.hasnext()){}

哦,还没看明白,结果就出来了。。。
------解决方案--------------------

ResultSet resultSet=SqlConnector.SqlSearch_result(sqlcom_goods);
            ArrayList<GoodDetails_data> gd_arrayList=new ArrayList<GoodDetails_data>();
            GoodDetails_data goodDetails_data;
            int  i = 0 ;

            while(resultSet.next())
                        {
                goodDetails_data=new GoodDetails_data();
                goodDetails_data.setGoodID(resultSet.getInt("goodsID"));
                goodDetails_data.setSalerID(resultSet.getInt("salerID"));
                goodDetails_data.setGoodTitle(resultSet.getString("title"));
                goodDetails_data.setCategory(resultSet.getString("category"));
                goodDetails_data.setPrice(resultSet.getString("price"));
                goodDetails_data.setDescible(resultSet.getString("de"));
                goodDetails_data.setPic(resultSet.getString("pic"));
//                System.out.println("resultset:"+goodDetails_data.getGoodTitle());
                gd_arrayList.add(i,goodDetails_data);
                i = i+1 ;
                System.out.println("arraylist:"+gd_arrayList.get(0).getGoodTitle());
                
            }




试试看 ; 不知道你bean里做什么处理没有
  相关解决方案