Class Foo と言う2つのクラスがあり、 Class Boo.Foo クラスには Boo クラスの配列リストが含まれています。Foo クラスのディープ コピーを作成する必要があり、Foo 自体の配列リストを作成しています。どうすればこれを達成できますか。
Class Foo{
ArrayList<Boo> boovar = new ArrayList<Boo>();
}
Class Boo{
int x;
void add_x(int y)
{
x=y;
}
}
ArrayList<Foo> foovar = new ArrayList<Foo>();
..adding elements to foovar.
ここで、Foovar 内のオブジェクトのディープコピーとなるように、Foo 型の ArrayList foovar1 を作成したいと考えています。つまり、x の削除や要素の追加など、foovar の boo オブジェクトを変更した場合、foovar1 にアクセスしたときに反映されるべきではありません。
ディープ コピーが打ちのめされていることは知っていますが、これを行う方法を説明している記事を実際に見つけることができませんでした。誰かがコードの使い方を教えてくれませんか?
編集:
言及されたコメントの1つのように、Foo内にコピーコンストラクターを作成しようとしていますが、Fooのコンストラクターを介してBoo配列リストを別の配列リストにコピーする方法について本当に途方に暮れています。arraylist 内の Foo のインスタンスをループして、そのコピーも作成する方法は言うまでもありません。どんな助けでも本当に感謝します!