当前位置:  开发笔记 > 编程语言 > 正文

为什么我的add方法会覆盖Vector?

如何解决《为什么我的add方法会覆盖Vector?》经验,为你挑选了1个好方法。

我正在使用其add(Object)方法将对象添加到java Vector中.在我的示例中,前5个对象是相同的,后跟2个不同于前5个的实例.出于某些原因,只要我插入不同的第一个,它就会将整个向量更改为该值!

'values'是一个迭代器,包含'1','1','1','1','1','2','2'之类的东西

Vector temp = new Vector();    
while (values.hasNext()) {
     temp.add(values.next());
     System.out.println(temp.toString());
}

它会输出类似的东西

[1]
[1,1]
[1,1,1]
[1,1,1,1]
[1,1,1,1,1]
[2,2,2,2,2,2]
[2 ,2,2,2,2,2,2]

我尝试使用LinkedList,以及使用add(object,index).同样的事发生了.



1> erickson..:

我怀疑,不知何故,你从迭代器获得的"对象"实际上是对可变对象的单个实例的多个引用,它将其状态从"1"更改为"2".我无法猜测的是它在这种明显的单线程操作中如何改变状态.

你能发布更完整的代码吗?显示values来自何处以及如何初始化.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有