CodeGym /Blog Java /Random-FR /Méthode ArrayList removeAll() en Java
Auteur
Pavlo Plynko
Java Developer at CodeGym

Méthode ArrayList removeAll() en Java

Publié dans le groupe Random-FR
La méthode ArrayList removeAll() en Java ne supprime pas tous les éléments de la bonne ArrayList , comme son nom pourrait le suggérer. Si vous avez besoin de cette opération, utilisez la méthode ArrayList clear() . Contrairement à clear() , la méthode removeAll() supprime tous les éléments d'une liste donnée qui sont contenus dans une autre collection.

syntaxe et déclaration removeAll()

Voici la syntaxe de la méthode :

boolean removeAll(Collection<?> c)
c est une collection qui contient des éléments à supprimer de cette liste. Cette méthode renvoie true si cette liste a changé à la suite de l'appel. Il peut également lever des exceptions : ClassCastException — si la classe d'un élément de cette liste est incompatible avec la collection spécifiée NullPointerException — si la liste contient un élément nul et que la collection spécifiée n'autorise pas les éléments nuls, ou si la collection spécifiée est nulle

exemple de code removeAll()

Disons que vous avez une liste d'amis sur votre réseau social. Eh bien, c'est la chose habituelle pour le moment. De plus, disons que vous êtes méticuleux et que vous inscrivez tous vos méchants sur une liste spéciale d'ennemis, que vos ennemis soient ou non parmi vos amis sur les réseaux sociaux. Vous avez décidé de vider votre liste d'amis de tous les méchants. La méthode removeAll() vous aidera certainement :

import java.util.ArrayList;
import java.util.List;

public class RemoveAll2Example {
  
       public static void main(String[] args) {

           
           List<String> friendList = new ArrayList<String>();

           // use add() method to add friends into your friend list
           friendList.add("Alex");
           friendList.add("Ivy");
           friendList.add("Victor");
           friendList.add("Peter");
           friendList.add("Lenny");
           friendList.add("Olly");
           friendList.add("Stu");
           friendList.add("Scott");
           friendList.add("Olivia");

           System.out.println("My old friend list: "+ friendList);

           //create and add elements to foe list 
           List<String> foeList = new ArrayList<String>();

           foeList.add("Ben");
           foeList.add("Scott");
           foeList.add("Chuck");
           foeList.add("Olly");
           foeList.add("Sam");
           System.out.println("All my enemies: "+ foeList);

           //remove all foeList elements from friendList list if they exist
           friendList.removeAll(foeList);
           System.out.println("new friend List without foes: "+ friendList);
       }
   }
La sortie est :
Mon ancienne liste d'amis : [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Tous mes ennemis : [Ben, Scott, Chuck, Olly, Sam] nouvelle liste d'amis sans ennemis : [Alex, Ivy, Victor, Peter, Lenny, Stu, Olivia]
Comme vous pouvez le voir, la méthode a supprimé vos ennemis Olly et Scott. Vous n'aviez pas d'ennemis Ben, Chuck et Sam dans votre liste d'amis. Vous avez probablement remarqué que, selon la déclaration de la méthode removeAll(), vous pouvez supprimer de votre liste non seulement les valeurs d'une autre liste, mais aussi celles d'une collection aléatoire. Prenons un exemple avec HashMap . Dans ce cas, vous devez indiquer explicitement que vous souhaitez supprimer les enregistrements qui correspondent, par exemple, à des valeurs (removeAll (collection.values()) ou à des clés (removeAll (collection.keySet()) ) . Imaginons que nous ayons un HashMap avec les noms de toutes les filles parmi nos amis, et nous devons ne laisser que des garçons dans la friendList(Je ne sais pas pourquoi cela pourrait être nécessaire, mais on ne sait jamais). Reprenons notre exemple avec l'ancienne liste d'amis, créons une HasMap filles et supprimons de la liste d'amis toutes les filles dont les noms sont écrits dans les valeurs de notre HashMap .

import java.util.*;

public class RemoveAll2Example {
  
       public static void main(String[] args) {

          // create an empty array list and full it up using Java 9 Factory Methods  in one line
List<String> friendList= new ArrayList<>(List.of("Alex", "Ivy", "Victor", "Peter", "Lenny", "Olly", "Stu", "Scott", "Olivia"));

           System.out.println("My old friend list: "+ friendList);

           // Creating hashMap with girls keys and names also using using Java 9 Factory Methods   
           Map<Integer, String> girls = new HashMap<>(Map.of(1, "Olly", 2, "Olivia", 3, "Loe", 4, "Ivy"));
           friendList.removeAll(girls.values());
           System.out.println("boys only friendList: " + friendList);
       }
   }
Voici la sortie :
Mon ancienne liste d'amis : [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Liste d'amis réservée aux garçons : [Alex, Victor, Peter, Lenny, Stu, Scott]

Quelques cas particuliers

Au début de cet article, j'ai écrit que pour supprimer toutes ses valeurs de la liste, vous devez utiliser la méthode ArrayList clear() . C'est le cas, mais bien sûr, vous pouvez également utiliser la méthode removeAll() pour cela. Vous avez probablement déjà deviné comment procéder :

myList.RemoveAll (myList);
Donnons un exemple. Dans un accès de sociopathie, vidons toute notre liste d'amis :

 import java.util.*;

public class RemoveAll2Example {
  
       public static void main(String[] args) {

           // create an empty array list and full it up using  Java 9 Factory Methods  in one line
           List<String> friendList= new ArrayList<>(List.of("Alex", "Ivy", "Victor", "Peter", "Lenny", "Olly", "Stu", "Scott", "Olivia"));
           System.out.println("My old friend list: "+ friendList);

           friendList.removeAll(friendList);
           System.out.println("my new empty friendlist...:" + friendList);
       }
   }
Voici la sortie :
Liste d'amis réservée aux garçons : [Alex, Victor, Peter, Lenny, Stu, Scott] ma nouvelle liste d'amis vide... :[]
Essayons au moins de supprimer les éléments null-collection de notre ArrayList :

import java.util.*;

public class RemoveAll2Example {
  
       public static void main(String[] args) {

           List<String> friendList = new ArrayList<>(List.of("Alex", "Ivy", "Victor", "Peter", "Lenny", "Olly", "Stu", "Scott", "Olivia"));
           System.out.println("My old friend list: "+ friendList);

           // we are happy not to have foes 
           List<String> foeList = null;
          
           //trying to remove all foeList elements from friendList list 
            friendList.removeAll(foeList);
            System.out.println("my new friendlist:" + friendList);
       }
   }
Selon la définition de la méthode removeAll(), nous avons une exception dans la sortie :
Mon ancienne liste d'amis : [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Exception dans le fil "main" java.lang.NullPointerException
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION