如果你存放的是对象的话,请保证那个对像中的值是固定不变的,D:声明对象及初始化(error)
while(){
  A:  1)声明对象及初始化(right)
  B:  2)对象值=XXX;
  C:  3)vector(XX)=对象值
}
如果你在D处声明对象,对象值会保存最新的值,vector只会存入最新一次修改的值
你应改在向vector插值时,建立新的对象这样Vector里的值是此对象的值且在该对象消失时Vector内的值不会随这一对象消失。因为vector中存放的是引用,而不是值。 希望对你有帮助!

解决方案 »

  1.   

    Vector tmp = new Vector();
    tmp.add(XX)tmp.get(i)(i=0,1,2...) 这样取不到吗?
      

  2.   

    楼主可能在循环里面初始化vector的吧。
      

  3.   

    我估计你的代码应该大概如下吧
    Vector v = new Vetor();
    MyObject o = new MyObject();
    for(int i = 0; i < 10; i++) {
      o.setProperty();//
      v.add(o);
    }
    这样的做法是错误的,因为v.get(0) == v.get(9) == o;//注意是"==",不是equals,因为它们都指向了同一个对象应该代码是
    Vector v = new Vetor();
    for(int i = 0; i < 10; i++) {
      MyObject o = new MyObject();
      o.setProperty();
      v.add(o);
    }
      

  4.   

    肯定是那样了!
    就好象你的对象重新赋了新值!
    要解决这样的问题
    就要把对象加入vector中后
    将对象设为null,
    再重新new这个对象
    赋值,加入vector
    此时,存入的新值就是在内存中的不同对象了
      

  5.   

    同意: ChDw(米)
    你把对象的引用指向同一个地方了。