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 ocomme 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 3qui 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);