Lorsque vous appelez la méthode clone() d'une ArrayList, une copie superficielle de la liste est créée. quelle est la copie superficielle de la matrice?qu'est-ce qu'une copie superficielle du tableau
Répondre
Vous devez distinguer deux types de copie: peu profond et profond. Alors que la copie profonde alloue un nouvel espace pour tout le tableau et tout son contenu (s'il contient des références, alors un nouvel espace est alloué pour créer des instances avec les mêmes valeurs que celles copiées), la copie superficielle alloue juste l'espace avec la même taille du tableau copié.
Exemple:
matrice Un a été alloué pour contenir seulement deux mutable objects (par exemple .: une liste ou une liste de tableaux). Voulez-vous avoir juste une copie du tableau "extern" (celui qui contient les deux références) ou voulez-vous une copie profonde, qui va allouer aussi nouvelles instances des deux références contenues dans A?
Dans le premier cas, par exemple:
A est le tableau à partir de référence 0x0000AA
ElementOne commence à 0x00BBCC
ElementTwo commence à 0x00BBFF
Si vous exécutez une copie superficielle :
B (le nouveau tableau) commencera à la référence 0x0000BB, ElementsOne et ElementsTwo pointera vers les anciennes références (0x00BBCC, 0x00BBFF).
Si vous exécutez une copie en profondeur, non seulement il alloue le nouvel espace pour le tableau, mais il alloue également de l'espace pour contenir les nouvelles instances (une nouvelle liste, un nouvel arrayliste ...).
Seuls les éléments du tableau sont copiés. S'il s'agit de types de référence, seule la référence est copiée. Tous les sous-types ou éléments de l'objet derrière la référence sont et non copiés.
Si vous avez des références dans ArrayList, les mêmes références seront copiées dans la ArrayList clonée. Les objets ne seront pas clonés.
- 1. Question sur tableau copie superficielle en C#
- 2. problème de copie superficielle!
- 3. Copie superficielle en Java
- 4. Question simple - Copie superficielle (VB.Net)
- 5. structDelete n'affecte pas la copie superficielle?
- 6. ArrayList copie superficielle iterate ou clone()
- 7. Comment faire une copie superficielle d'une référence de hachage Perl?
- 8. Question à propos de la copie superficielle en C++
- 9. SQLAlchemy: copie superficielle en évitant le chargement paresseux
- 10. C: struct copie/éléments du tableau
- 11. iPhone SDK: Copie tableau
- 12. tableau de copie dans un autre tableau
- 13. Copie du contenu de la chaîne dans le tableau char
- 14. Copie d'un tableau de caractères
- 15. Copie du contenu d'un tableau vers un autre tableau sans répétition des données contenues
- 16. Comment faire une copie superficielle d'une instance de modèle de moteur d'application pour créer une nouvelle instance?
- 17. Comment créer une copie superficielle d'un objet afin qu'il puisse être sérialisé et envoyé via un appel de méthode Web?
- 18. Copie efficace du répertoire entier
- 19. Vitesse de copie du processus
- 20. copie conditionnelle dans Excel
- 21. STL wrapper sans copie autour d'un tableau existant?
- 22. Pousser des éléments dans le tableau en tant que copie
- 23. Un algorithme de pile de tableau sans copie
- 24. position du tableau parent du tableau php
- 25. effectue une copie du contenu d'un tableau à une autre cause d'une fuite de mémoire
- 26. valeur de copie du pointeur char à un tableau de caractères
- 27. copie peu profonde une liste avec downcasting
- 28. (Deep) la copie d'un tableau en utilisant jQuery
- 29. Copie la moitié d'un enfant HTML tableau nœuds
- 30. Copie d'une collection SMO dans un tableau dans Powershell
bel exemple bon à comprendre – selvaraj