1. ホーム

[解決済み] ArrayListをクローンし、その内容もクローンする方法は?

2022-03-31 15:09:37

質問

をクローンするにはどうすればよいですか? ArrayList とそのアイテムのクローンをJavaで作成できますか?

たとえば、私は持っています。

ArrayList<Dog> dogs = getDogs();
ArrayList<Dog> clonedList = ....something to do with dogs....

そして、私は、オブジェクトが clonedList はdogs listと同じではない。

解決方法は?

アイテムに対して繰り返し処理を行い、一つずつクローンを作成し、クローンを結果配列に格納する必要があります。

public static List<Dog> cloneList(List<Dog> list) {
    List<Dog> clone = new ArrayList<Dog>(list.size());
    for (Dog item : list) clone.add(item.clone());
    return clone;
}

これを動作させるには、当然ながら、あなたの Dog クラスを実装し Cloneable インターフェイスをオーバーライドし clone() メソッドを使用します。