Comment copier des valeurs, pas des références, de List & lt; Integer & gt; dans une autre liste?
À savoir, sans faire référence à un même objet, j'ai besoin de copier les valeurs des éléments d'une liste dans une autre liste. Ce sont les listes:
List<Integer> listA = new ArrayList<Integer>();
List<Integer> ListB = new ArrayList<Integer>();
listA = (added some values);
listB = (do what?)...
PS. Je m'excuse pour les débutants question, mais je n'ai jamais fait une telle chose.
source d'informationauteur sandalone
Vous devez vous connecter pour publier un commentaire.
Vous pouvez essayer de donner un coup d'oeil à la Les Collections.copie méthode:
Remarque: Le dessus doit travailler pour les types de données simples tels que les Entiers, cependant, si vous avez vos propres objets qui pourraient à leur tour faire référence à d'autres objets, vous devrez effectuer une itération sur chaque objet et de le copier séparément.
Il n'y a absolument aucune raison de faire une copie d'un Entier. Entier est immuable de la classe. Cela signifie que sa valeur est définie lorsque l'Entier instance est créée, et ne peut jamais changer. Un Entier de référence peut donc être partagé par plusieurs listes et les fils sans crainte, car il n'y a aucun moyen n'importe qui peut modifier sa valeur. Votre question fait donc pas de sens réel.
Pour créer une liste de tableaux
b
contenant les mêmes nombres Entiers comme une autre Listea
il suffit d'utiliser le code suivant:Assurer l'Entier de ne pas être cloné, mais c'est une bonne chose, parce que le clonage est complètement inutile.
Utiliser cette méthode de
Collections
de classe de copier tous les éléments de la liste de tableaux à une autre liste de tableaux:Essayer de l'utiliser, alors que les réponses données par un autre gars sont tout à fait bien. Mais par mon option, ce qui suit est la meilleure façon:
Vous n'aurez pas beaucoup de chance avec clone() et Clonable - il ne fera que créer une copie. Vous pouvez utiliser quelque chose comme cela - http://javatechniques.com/blog/faster-deep-copies-of-java-objects/ .
De L'Essayer.