Maison >Java >javaDidacticiel >Comment cloner en profondeur des ArrayLists en Java ?
Clonage de ArrayList et de leur contenu
En Java, le clonage profond d'une ArrayList implique la création d'une nouvelle liste contenant de nouvelles instances des objets de la liste d'origine , plutôt que des références aux objets originaux. Pour y parvenir, une approche globale est nécessaire.
Clonage personnalisé
Une méthode consiste à créer un constructeur de clonage personnalisé pour les objets stockés dans ArrayList. Ce constructeur dupliquerait les champs de chaque objet, créant ainsi une nouvelle copie plutôt qu'une simple référence à l'original.
Par exemple, avec une classe Dog :
class Dog { public Dog() { ... } // Regular constructor public Dog(Dog dog) { // Copy all the fields of Dog. } }
En itérant l'ArrayList d'origine et en créant de nouveaux objets Dog à l'aide de ce constructeur, une liste clonée avec des objets indépendants peut être créé :
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; }
Interface cloneable
De plus, définir une interface ICloneable personnalisée avec une méthode clone() peut activer le clonage générique pour différents types d'objets. Cependant, il convient de noter que cette approche nécessite la mise en œuvre de la logique de clonage pour chaque type à cloner.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!