我正在創建整數數組的組合,並將它們添加到Vector中以存儲它們以供以後使用。 我通過遍歷int []來完成組合,然後將該元素添加到向量中。Java矢量<int[]>引用int []還是複製?
Vector是否只添加對int []的引用,因此我會在最後保留大量對同一個int []的引用,或者它是否將一個副本添加到Vector中?
我正在創建整數數組的組合,並將它們添加到Vector中以存儲它們以供以後使用。 我通過遍歷int []來完成組合,然後將該元素添加到向量中。Java矢量<int[]>引用int []還是複製?
Vector是否只添加對int []的引用,因此我會在最後保留大量對同一個int []的引用,或者它是否將一個副本添加到Vector中?
陣列,包括int[]
是Java中的Object
。這意味着您的Vector
持有對您的int[]
元素的引用。
但是,如果您確實需要List
的同步版本,我建議您使用ArrayList
而不是Vector
或Collections.synchronizedList
。
因此,ArrayList將數組存儲爲副本而不是引用? – Stefan
爲了完全正確,它是一個參考文獻的副本。無論如何,它存儲引用,就像其他任何對象一樣。 –
你正在創建'int []'的不同實例嗎?如果是這樣 - 你最終會得到多個對不同'int []'對象的引用。如果您不斷修改並插入相同的'int []'對象 - 您將只有1個對象和多個引用。 – amit