Java Language Suppression des éléments correspondants des listes à l'aide de l'itérateur.


Exemple

Au-dessus, j'ai remarqué un exemple pour supprimer des éléments d'une liste dans une boucle et j'ai pensé à un autre exemple qui pourrait s'avérer utile cette fois-ci en utilisant l'interface Iterator .
Ceci est une démonstration d'une astuce qui peut s'avérer utile pour traiter les éléments en double dans les listes dont vous souhaitez vous débarrasser.

Remarque: Ceci ne fait qu'ajouter aux éléments Suppression d'une liste dans un exemple de boucle :

Définissons donc nos listes comme d'habitude

    String[] names = {"James","Smith","Sonny","Huckle","Berry","Finn","Allan"};
    List<String> nameList = new ArrayList<>();

    //Create a List from an Array
    nameList.addAll(Arrays.asList(names));
    
    String[] removeNames = {"Sonny","Huckle","Berry"};
    List<String> removeNameList = new ArrayList<>();

    //Create a List from an Array
    removeNameList.addAll(Arrays.asList(removeNames));

La méthode suivante utilise deux objets Collection et effectue la magie de la suppression des éléments de notre removeNameList qui correspondent aux éléments de nameList .

private static void removeNames(Collection<String> collection1, Collection<String> collection2) {
      //get Iterator.
    Iterator<String> iterator = collection1.iterator();
    
    //Loop while collection has items
    while(iterator.hasNext()){
        if (collection2.contains(iterator.next()))
            iterator.remove(); //remove the current Name or Item
    }
}

Appel de la méthode et passage de la liste de nameList et de la removeNameList comme suit removeNames(nameList,removeNameList);
Produira la sortie suivante:

Liste des tableaux avant de supprimer les noms: James Smith Sonny Huckle Berry Finn Allan
Liste de matrices après suppression des noms: James Smith Finn Allan

Une utilisation simple et ordonnée pour les collections qui peuvent être utiles pour supprimer des éléments répétés dans les listes.