Collecte de copies approfondies en Java

Une copie qui n'affecte pas la source de la copie même si vous copiez un tableau ou une collection en Java et apportez des modifications à la destination de la copie est appelée une copie complète.

Si vous le recherchez sur le net, vous pouvez utiliser ʻintouString` comme arguments de type.

ArrayList myList = new ArrayList<MyObject>( srcList );

Cela dit que vous pouvez faire une copie complète en faisant quelque chose comme ça, mais en fait, si l'objet est stocké dans la liste, ce ne sera pas une copie profonde! !!

Par conséquent, il ne suffit pas de simplement prendre la collection comme argument et «nouveau».

Pour copier en profondeur une collection d'objets, etc.

ArrayList<MyObject> myList = new ArrayList<MyObject>(srcList.size());
for (MyObject o : srcList) {
 //Mettez en œuvre l'un des éléments suivants
 o.add(new MyObject(new o)); //Copier le constructeur
 o.add(o.clone()); //Implémentation d'interface clonable
}

Il semble que vous deviez préparer un constructeur de copie dans l'objet à mettre dans la collection, ou hériter de la méthode clone. (Vous pouvez utiliser l'une ou l'autre méthode)

À propos de l'implémentation de l'interface clonable: http://qiita.com/SUZUKI_Masaya/items/8da8c0038797f143f5d3

Question concernant la collecte d'objets Deep Copy: http://stackoverflow.com/questions/715650/how-to-clone-arraylist-and-also-clone-its-contents

Recommended Posts

Collecte de copies approfondies en Java
[Mémo personnel] Créez une copie complète simple avec Java
Collection Java9
A propos du traitement de la copie de fichiers en Java
Étudiez le Deep Learning à partir de zéro en Java.
Partition en Java
Premiers pas pour l'apprentissage profond en Java
Changements dans Java 11
Réintroduction Java - Collection Java
Taux circonférentiel à Java
FizzBuzz en Java
[Java] Cadre de collection
Découvrez comment HashMap fonctionne en Java
[Deep Learning from scratch] dans Java 3. Réseau neuronal
Lire JSON en Java
Implémentation de l'interpréteur par Java
Faites un blackjack avec Java
Application Janken en Java
Programmation par contraintes en Java
Mettez java8 dans centos7
Questions d'entretien de Java Collection
NVL-ish guy en Java
Joindre des tableaux en Java
Interface appelable en Java
Commentaires dans la source Java
Fonctions Azure en Java
Formater XML en Java
Simple htmlspecialchars en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Utiliser OpenCV avec Java
Mémorandum WebApi avec Java
Exécuter des commandes en Java (ping)
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Utiliser PreparedStatement en Java
Nouveautés de Java 9,10,11
Exécution parallèle en Java
Premiers pas avec Java Collection
Essayez d'utiliser RocksDB avec Java
Copier les pots dépendants dans Gradle 5
Lire des fichiers binaires en Java 1
Évitez l'erreur que Yuma a donnée en Java
Obtenir des informations EXIF en Java
[Neta] Sleep Sort en Java
Modifier ini en Java: ini4j
L'histoire de Java dans ce monde
Segfo Java en 6 lignes
Collection d'exemples de code parallèle Java