88 votes

Ajouter un objet à un ArrayList et le modifier plus tard

Si j'ai un ArrayList et que j'y ai ajouté un objet, puis que j'ai modifié cet objet plus tard, ce changement se reflétera-t-il dans l'ArrayList ? ou lorsque j'ajoute l'objet à l'ArrayList, Java crée une copie et l'ajoute à l'ArrayList ?

Que faire si je change la référence à cet objet en null ? Cela signifie-t-il que l'objet de l'ArrayList est désormais également nul ?

7voto

DerMike Points 4280

Toute modification apportée à l'objet sera reflétée dans la liste.

Cependant, lorsque vous traitez des objets tels que des chaînes qui sont immuables, un nouvel objet sera créé lors des "opérations de modification". En fait, votre ancien objet est toujours dans la liste alors que vous en avez un nouveau ailleurs.

-1voto

user2176745 Points 153

Je voulais ajouter une autre démonstration où ArrayList est à l'intérieur d'une carte en tant que valeur. L'ArrayList est modifié après avoir été ajouté à la carte et la carte reflète les modifications.

La carte a un élément avec le nom de la mère comme clé et les enfants comme valeur.

     String key = "adeleMom";
    Map<String, ArrayList<String>> myMap = new HashMap<String, ArrayList<String>>();
    ArrayList<String> firstList = new ArrayList<String>();
    firstList.add("adele");
    myMap.put(key, firstList);
    firstList = null;
    ArrayList secondList = myMap.get(key);
    System.out.println(secondList); // prints [adele]
    secondList.add("bonnie");
    System.out.println("Added bonnie");
    ArrayList thirdList = myMap.get(key);
    System.out.println(thirdList); // prints [adele, bonnie]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X