Maison > Java > javaDidacticiel > le corps du texte

Comment l'affectation d'un ArrayList à une nouvelle référence affecte-t-elle l'objet d'origine ?

Patricia Arquette
Libérer: 2024-11-20 12:47:11
original
359 Les gens l'ont consulté

How does assigning an ArrayList to a new reference affect the original object?

Référencement d'objet Java ArrayList dans l'affectation

Lorsqu'un ArrayList l1 est affecté à une nouvelle référence l2, l1 et l2 ne pointent pas vers des Objets ArrayList. Au lieu de cela, l2 reçoit une référence au même objet ArrayList que l1. C'est ce qu'on appelle une copie superficielle.

La modification de l'objet de liste via l1 ou l2 sera reflétée dans les deux références. Comme le montre l'exemple :

List<Integer> l1 = new ArrayList<>();
for (int i = 1; i <= 10; i++) {
    l1.add(i);
}

List l2 = l1;
l2.clear();
Copier après la connexion

l1 et l2 font tous deux référence au même objet, donc effacer la liste via l2 affecte également l1.

Pour créer une copie de l'objet ArrayList, un une nouvelle liste avec une copie des éléments d'origine doit être créée. Une façon d'y parvenir consiste à utiliser le constructeur ArrayList(Collection c), où c est la collection d'origine :

List<Integer> newList = new ArrayList<>(l1);
Copier après la connexion

Cela crée un nouvel objet ArrayList avec une référence distincte et une copie du éléments de l1.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal