ArrayList とその内容のクローン作成
Java では、ArrayList のディープ クローン作成には、元のリストのオブジェクトの新しいインスタンスを含む新しいリストの作成が含まれます、元のオブジェクトへの参照ではなく。これを実現するには、包括的なアプローチが必要です。
カスタム クローン作成
1 つの方法は、ArrayList に格納されているオブジェクトのカスタム クローン コンストラクターを作成することです。このコンストラクターは各オブジェクトのフィールドを複製し、元のオブジェクトへの単なる参照ではなく新しいコピーを効果的に作成します。
たとえば、Dog クラスの場合:
class Dog { public Dog() { ... } // Regular constructor public Dog(Dog dog) { // Copy all the fields of Dog. } }
次のように反復処理します。元の ArrayList を作成し、このコンストラクターを使用して新しい Dog オブジェクトを作成すると、独立したオブジェクトを含むクローン リストを作成できます。 created:
public static List<Dog> cloneList(List<Dog> dogList) { List<Dog> clonedList = new ArrayList<>(dogList.size()); for (Dog dog : dogList) { clonedList.add(new Dog(dog)); } return clonedList; }
Cloneable Interface
さらに、 clone() メソッドを使用してカスタム ICloneable インターフェイスを定義すると、さまざまな種類のオブジェクトの汎用クローン作成が可能になります。ただし、このアプローチでは、クローンを作成する必要があるタイプごとにクローン ロジックを実装する必要があることに注意してください。
以上がJava で ArrayList のディープクローンを作成するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。