2012-11-12 29 views
2

我正在創建整數數組的組合,並將它們添加到Vector中以存儲它們以供以後使用。 我通過遍歷int []來完成組合,然後將該元素添加到向量中。Java矢量<int[]>引用int []還是複製?

Vector是否只添加對int []的引用,因此我會在最後保留大量對同一個int []的引用,或者它是否將一個副本添加到Vector中?

+1

你正在創建'int []'的不同實例嗎?如果是這樣 - 你最終會得到多個對不同'int []'對象的引用。如果您不斷修改並插入相同的'int []'對象 - 您將只有1個對象和多個引用。 – amit

回答

5

陣列,包括int[]是Java中的Object。這意味着您的Vector持有對您的int[]元素的引用。

但是,如果您確實需要List的同步版本,我建議您使用ArrayList而不是VectorCollections.synchronizedList

+0

因此,ArrayList將數組存儲爲副本而不是引用? – Stefan

+2

爲了完全正確,它是一個參考文獻的副本。無論如何,它存儲引用,就像其他任何對象一樣。 –