Copie d'une liste

cs_chriskat Messages postés 1 Date d'inscription mercredi 4 janvier 2006 Statut Membre Dernière intervention 30 novembre 2006 - 30 nov. 2006 à 08:47
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 - 1 déc. 2006 à 15:20
Bonjour,

je voudrais savoir comment copier une liste (ArrayList) dans une autre sans lien entre les 2, c'est à dire que si j'en modifie une, je ne veux pas que l'autre soit modifiée.

Je voudrais faire la même chose avec une HashMap.

Merci.

2 réponses

platon179 Messages postés 237 Date d'inscription lundi 20 mai 2002 Statut Membre Dernière intervention 22 juillet 2011 2
30 nov. 2006 à 09:34
Salut

Si tu fais simplement un clone() de ton ArrayList, les éléments eux-même ne seront pas copiés (doc : "Returns a shallow copy of this ArrayList instance. (The elements
themselves are not copied.)"). Alors a mon avis, tu dois créer une nouvelle liste, et cloner chaque élément, séquentiellement.

Le principe est le même pour le HashMap. Sauf qu'il me semble qu'il existe une méthode putAll() qui fait tout ca, à vérifier.
0
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
1 déc. 2006 à 15:20
Yopla,

tu peux utiliser des "utilitaires" qui te permettent de cloner en profondeur tes objets
exemple : SerializationUtils.clone(objet) d apache marche tres bien !! (il faut que tes objets soient serializables pour que ce puisse etre cloné)
org.apache.commons.lang.SerializationUtils
t as qu a prendre le jar chez eux et le rajouter a ton class path !

++ Toinou
0
Rejoignez-nous