System.out.println("arraylist:"+gd_arrayList.get(0).getGoodTitle());
get(0)?

解决方案 »

  1.   

     System.out.println("arraylist:"+gd_arrayList.get(0).getGoodTitle());  每次打印都是同一个,看看是不是这个问题?
      

  2.   

    没发现你增加方面有任何问题。“遍历ArrayList里面的值,发现都是最后一个值”
    请问,你是怎么遍历的?莫非是那句“System.out.println("arraylist:"+gd_arrayList.get(0).getGoodTitle())”?
      

  3.   


    说明你根本没有遍历ArrayList。for (int i=0;i<gd_arrayList.size();i++) {
      System.out.println("arraylist:"+gd_arrayList.get(i).getGoodTitle());
    }
      

  4.   

    请问是这个方法吗?clone
    public Object clone()返回此 ArrayList 实例的浅表副本。(不复制这些元素本身。) 覆盖:
    类 Object 中的 clone
    返回:
    此 ArrayList 实例的一个副本
      

  5.   

    我确实在后面遍历了,是不正确的。 for (int i = 0; i < gd_arrayList.size(); i++) {
    System.out.println("resultsetsecond:"+gd_arrayList.get(i).getGoodTitle());
    }
      

  6.   

    执行的结果应该是都是第一次添加进去的吧。因为你使用的get(0)表示访问集合中第一个元素。要看到底是否添加成功,直接在while循环外输出集合里的东西即可。
      

  7.   

    坑爹呢!
    while(resultSet.next())
    {}应该是
    while(resultSet.hasnext()){}
      

  8.   

    多次循环,输出的get[0]的值一直在变,而且并不是第一个值
      

  9.   


    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里做什么处理没有
      

  10.   

    额,hasnext(),java API里没找到这个发放呢,求指点
      

  11.   

    这个方法没有怎么用呢。我没有忽悠问题还没解决。
    这是遍历:
    for (int i = 0; i < gd_arrayList.size(); i++) {
    System.out.println("resultsetsecond:"+gd_arrayList.get(i).getGoodTitle());
    }
    我里面三个数据,这是遍历结果:
    resultsetsecond:title3
    resultsetsecond:title3
    resultsetsecond:title3
      

  12.   

    不是说你忽悠人哈我说被这个忽悠了
    坑爹呢!
    while(resultSet.next())
    {}应该是
    while(resultSet.hasnext()){}
    把你 GoodDetails_data函数贴一下吧。不会搞成static成员变量吧?
      

  13.   

    这是resultset中的next():next
    boolean next()
                 throws SQLException将光标从当前位置向前移一行。ResultSet 光标最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。 
    当调用 next 方法返回 false 时,光标位于最后一行的后面。任何要求当前行的 ResultSet 方法调用将导致抛出 SQLException。如果结果集的类型是 TYPE_FORWARD_ONLY,则其 JDBC 驱动程序实现对后续 next 调用是返回 false 还是抛出 SQLException 将由供应商指定。 如果对当前行开启了输入流,则调用 next 方法将隐式关闭它。读取新行时,将清除 ResultSet 对象的警告链。 
    返回:
    如果新的当前行有效,则返回 true;如果不存在下一行,则返回 false 
    抛出: 
    SQLException - 如果发生数据库访问错误或在关闭的结果集上调用此方法--------------------------------------------------------------------------------
    在这里while循环条件用这个不可以吗,有什么问题
      

  14.   

    神呐!!!我好惭愧,确实写成static成员变量了。没发觉这个问题,初学java,深感功底太浅,太感谢大家了,是我的事务,我把GoodDetails_data里的成员变量写成static了,问题找到了。
    再次膜拜sdojqy1122大神,看问题好犀利!
      

  15.   

    怀疑可能是LZ的数据有问题GoodDetails_data goodDetails_data; //变量在这里定义的,所以不是static是可以肯定的了
    while(resultSet.next()) {
        ...
        System.out.println(resultSet.getInt("goodsID"));打印一下结果集的数据看看
    }
      

  16.   


    既然有Static定义
    GoodDetails_data goodDetails_data; //这里不提示重复定义错误?
      

  17.   


    能把值对象的成员变量定义为 static,你算是立功了!
      

  18.   

    类是非static,只是成员变量是static
      

  19.   

    对,我也遇到同样的问题了,奇葩搞了半天,类里写的static静态变量,当时是全部都一样啊
      

  20.   

    try {
    in = new FileInputStream("szp_dvd.bin");
    while ((mReadLen = in.read(packet)) != -1) {
    PacketInfo mPacketInfo = new PacketInfo();
    mPacketInfo.len = mReadLen;
    mPacketInfo.data = packet;
    mPacketInfoList.add(mPacketInfo);
    }
    } catch (Exception e1) {
    e1.printStackTrace();
    } finally {
    if (in != null) {
    try {
    in.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    }public class PacketInfo {
    public int len;
    public byte[] data = new byte[1024];
    }这样也会背覆盖,蛋疼!