我正在使用其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"更改为"2".我无法猜测的是它在这种明显的单线程操作中如何改变状态.
你能发布更完整的代码吗?显示values
来自何处以及如何初始化.