可能重複:
How to clone ArrayList and also clone its contents?克隆列表
我有一個ArrayList<Widget>
,我想「深」的克隆,以便在原始列表進行修改的任何項目做對克隆列表中的項目沒有任何影響:
ArrayList<Widget> origList = getMyList();
ArrayList<Widget> cloneList = origList.clone();
// Remove the 5th Widget from the origina list
origList.remove(4);
// However, the cloneList still has the 5th Widget and is unchanged
// Change the id of the first widget
origList.get(0).setId(20);
// However in cloneList, the 1st Widget's ID is not 20
什麼是b最安全的方式來完成這個?我想,這不是那麼簡單:
ArrayList<Widget> cloneList = origList.clone();
我想象中的事實,這是一個內置的ArrayList
型,加上一個事實,即它的通用性,將會使事情變得複雜。我也想象我需要爲我的Widget
類寫一個特殊的clone()
覆蓋?
在此先感謝!
編輯:
我還完全接受,如果有一個公共JAR在那裏,確實對我來說這繁重,所以請隨時提出建議,但我仍想知道如何做這個時尚的方式,讓我可以學習;-)
請在發佈問題前進行搜索 – jere 2012-01-18 18:26:25