Eh bien, voici l'astuce.
Prenons deux exemples ici:
public class ArrayListExample {
public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<>();
List<Integer> arrayList = new ArrayList<>();
collection.add(1);
collection.add(2);
collection.add(3);
collection.add(null);
collection.add(4);
collection.add(null);
System.out.println("Collection" + collection);
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
arrayList.add(null);
arrayList.add(4);
arrayList.add(null);
System.out.println("ArrayList" + arrayList);
collection.remove(3);
arrayList.remove(3);
System.out.println("");
System.out.println("After Removal of '3' :");
System.out.println("Collection" + collection);
System.out.println("ArrayList" + arrayList);
collection.remove(null);
arrayList.remove(null);
System.out.println("");
System.out.println("After Removal of 'null': ");
System.out.println("Collection" + collection);
System.out.println("ArrayList" + arrayList);
}
}
Voyons maintenant la sortie:
Collection[1, 2, 3, null, 4, null]
ArrayList[1, 2, 3, null, 4, null]
After Removal of '3' :
Collection[1, 2, null, 4, null]
ArrayList[1, 2, 3, 4, null]
After Removal of 'null':
Collection[1, 2, 4, null]
ArrayList[1, 2, 3, 4]
Analysons maintenant la sortie:
Lorsque 3 est supprimé de la collection, il appelle la remove()
méthode de la collection qui prend Object o
comme paramètre. Par conséquent, il supprime l'objet 3
. Mais dans l'objet arrayList, il est remplacé par l'index 3 et donc le 4ème élément est supprimé.
Par la même logique de suppression d'objet, null est supprimé dans les deux cas dans la deuxième sortie.
Donc, pour supprimer le nombre 3
qui est un objet, nous devrons explicitement passer 3 en tant queobject
.
Et cela peut être fait par cast ou wrapping en utilisant la classe wrapper Integer
.
Par exemple:
Integer removeIndex = Integer.valueOf("3");
collection.remove(removeIndex);