Java >> Tutoriel Java >  >> Java

Comment supprimer une entrée d'une collection en Java ?

Supprimer une entrée d'une collection

  • Comme nous le savons, nous pouvons supprimer une entrée d'une Collection de trois manières.
    1. En utilisant remove(Object obj) méthode de collecte
    2. En utilisant remove(int index) méthode de liste
    3. En utilisant remove() méthode Iterator
  • L'interface de collection ajoute une méthode remove(Object obj) est utilisé pour supprimer un élément spécifié d'une collection.
  • L'interface de liste ajoute un autre remove(int index) est utilisée pour supprimer un objet à l'index spécifié dans la méthode.
  • L'interface de l'itérateur ajoute également remove() est utilisée pour supprimer l'objet actuel d'une collection.

Maintenant, nous allons voir comment la méthode remove(Object obj) de Collection diffère de la méthode remove() de Iterator ?

méthode remove(Object obj) de l'interface Collection

  • Cette méthode est disponible dans le package java.util.
  • La méthode remove() of Collection est utilisé pour supprimer un seul objet de l'élément spécifié d'une Collection.
  • La syntaxe de la méthode remove() de l'interface de collecte est donnée ci-dessous :
    boolean remove(Object obj)
    
  • Le type de retour de cette méthode est booléen, il renvoie donc vrai si l'élément ou l'objet est supprimé avec succès, sinon renvoie faux.
  • Cette méthode lève une exception [NullPointerException] si nous passons null en tant que paramètre dans la méthode de Collection et si nous passons d'autres éléments de type en tant que paramètre dans la méthode de Collection, nous obtiendrons également une exception[ClassCastException].
  • Lorsque nous itérons, supposons que nous parcourions une liste et ne supprimions que quelques éléments en fonction de la logique et si nous utilisions la méthode Collection remove() alors nous aurons une exception ConcurrentModificationException.

Exemple :

// Java program to demonstrate the behavior of 
// remove() method of Collection

import java.util.*;

class RemoveCollectionMethod {
    public static void main(String[] args) {
        Collection collection = new LinkedList();

        collection.add(10);
        collection.add(20);
        collection.add(30);
        collection.add(40);
        collection.add(50);

        System.out.println("Current LinkedList:" + collection);

        collection.remove(30);

        System.out.println(" LinkedList:" + collection);
    }
}

Sortie

E:\Programs>javac RemoveCollectionMethod.java

E:\Programs>java RemoveCollectionMethod
Current LinkedList:[10, 20, 30, 40, 50]
 LinkedList:[10, 20, 40, 50]

Maintenant, nous allons voir comment la méthode remove() d'Iterator diffère de la méthode remove(Object obj) de Collection ?

méthode remove() de l'interface Iterator

  • Cette méthode est disponible dans le package java.util.
  • méthode remove() of Iterator supprime l'objet ou l'élément actuel de la collection.
  • En cas de méthode remove() , nous ne pouvons pas supprimer l'élément spécifié ou l'élément aléatoire au milieu directement mais sans itération.
  • La syntaxe de cette méthode remove() de l'interface Iterator est donnée ci-dessous :
    void remove(){}
    
  • Le type de retour de la méthode remove() est vide donc il ne renvoie rien.
  • Cette méthode lève une exception IllegalStateException si cette méthode est appelée avant la méthode next() est appelé.
  • Lorsque nous itérons, supposons que nous parcourions une liste et ne supprimions que quelques éléments en fonction de la logique et si nous utilisions la méthode Iterator remove() alors nous n'obtiendrons aucune exception là-bas.

Exemple :

// Java program to demonstrate the behavior of 
// remove() method of Iterator

import java.util.*;

class RemoveIteratorMethod {
    public static void main(String[] args) {
        // Creating a Set interface object
        Set set = new HashSet();

        // By using add() method to add few elements in set
        set.add("Java");
        set.add("Python");
        set.add("C++");
        set.add("Ruby");
        set.add("C");

        // Creating an object of Iterator interface
        Iterator itr = set.iterator();

        // loop for traversing an element
        while (itr.hasNext()) {
            String str = (String) itr.next();
            if (str.equals("C"))
                itr.remove();
        }
        // Display elements of Set interface 
        System.out.println("The final list of Iterator :" + set);
    }
}

Sortie

E:\Programs>javac RemoveIteratorMethod.java

E:\Programs>java RemoveIteratorMethod
The final list of Iterator :[Ruby, Python, C++, Java]

Balise Java