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();
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 extends E> c), où c est la collection d'origine :
List<Integer> newList = new ArrayList<>(l1);
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!