有以下數據結構:一個新的類實例添加到Vector
Vector<Cluster> clustersList;
在迭代過程中,我加入新的元素clustersList
。
Cluster c1 = getCluster();
clustersList.add(c1);
的問題是,在最後一次迭代的第一個元素(((0)(2))
)由最後一個((((0)(2))((1)(6)))
),即取代:
[((0)(2))]
[((0)(2)), ((1)(6))]
[((0)(2)), ((1)(6)), ((3)(7))]
[((0)(2)), ((1)(6)), ((3)(7)), ((5)(8))]
[(((0)(2))((1)(6))), ((1)(6)), ((3)(7)), ((5)(8)), (((0)(2))((1)(6)))]
結果必須是:
[((0)(2))]
[((0)(2)), ((1)(6))]
[((0)(2)), ((1)(6)), ((3)(7))]
[((0)(2)), ((1)(6)), ((3)(7)), ((5)(8))]
[((0)(2)), ((1)(6)), ((3)(7)), ((5)(8)), (((0)(2))((1)(6)))]
我怎樣才能得到這樣的結果?
P.S.我不在類Cluster中使用任何ID。
Vector只保存對簇對象的引用,它不包含實際的對象。因此,如果在其他地方修改了對象,那麼最終會出現這種情況 – gerrytan 2013-03-26 13:59:48
@gerrytan:那麼,在這種情況下使用ArrayList會更好嗎? – 2013-03-26 14:00:42