CodeGym /Blog Java /Aleatoriu /Metoda ArrayList removeAll() în Java
John Squirrels
Nivel
San Francisco

Metoda ArrayList removeAll() în Java

Publicat în grup
Metoda ArrayList removeAll() din Java nu elimină toate elementele din ArrayList corespunzătoare , așa cum ar putea sugera numele său. Dacă aveți nevoie de această operație, utilizați metoda ArrayList clear() . Spre deosebire de clear() , metoda removeAll() elimină toate elementele dintr-o listă dată care sunt conținute într-o altă colecție.

Sintaxa și declarația removeAll().

Iată sintaxa metodei:

boolean removeAll(Collection<?> c)
Unde c este o colecție care conține elemente care trebuie eliminate din această listă. Această metodă returnează true dacă această listă s-a schimbat ca urmare a apelului. De asemenea, poate arunca excepții: ClassCastException — dacă clasa unui element din această listă este incompatibilă cu colecția specificată NullPointerException — dacă lista conține un element nul și colecția specificată nu permite elemente nule sau dacă colecția specificată este nulă

Exemplu de cod removeAll().

Să presupunem că ai o listă de prieteni pe rețeaua ta de socializare. Ei bine, deocamdată este lucrul obișnuit. De asemenea, să presupunem că ești una meticuloasă și înscrie-ți pe toți cei nedoritori pe o listă specială de inamici, indiferent dacă inamicii tăi se numără sau nu printre prietenii tăi de pe rețelele sociale. Ați decis să ștergeți lista de prieteni de toți cei nedoritori. Metoda removeAll() va ajuta cu siguranță la asta:

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);
       }
   }
Ieșirea este:
Vechea mea listă de prieteni: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Toți dușmanii mei: [Ben, Scott, Chuck, Olly, Sam] Lista de prieteni noi fără inamici: [Alex, Ivy, Victor, Peter, Lenny, Stu, Olivia]
După cum puteți vedea, metoda i-a șters pe inamicii dvs. Olly și Scott. Nu ai avut dușmani Ben, Chuck și Sam în lista ta de prieteni. Probabil ați observat că, conform declarației metodei removeAll(), puteți șterge din listă nu numai valori dintr-o altă listă, ci dintr-o colecție aleatorie. Să avem un exemplu cu HashMap . În acest caz, trebuie să indicați în mod explicit că doriți să eliminați acele înregistrări care se potrivesc, de exemplu, cu valori (removeAll (collection.values()) sau chei (removeAll (collection.keySet()) . Să ne imaginăm că avem un HashMap cu numele tuturor fetelor dintre prietenii noștri și trebuie să lăsăm doar băieți în lista de prieteni(Nu știu de ce ar putea fi nevoie de acest lucru, dar nu se știe niciodată). Să ne întoarcem la exemplul nostru cu vechea listă de prieteni, să creăm un HasMap pentru fete și să eliminăm din lista de prieteni toate fetele ale căror nume sunt scrise în valorile HashMap- ului nostru .

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);
       }
   }
Iată rezultatul:
Vechea mea listă de prieteni: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Lista de prieteni numai pentru băieți: [Alex, Victor, Peter, Lenny, Stu, Scott]

Câteva cazuri speciale

La începutul acestui articol am scris că pentru a elimina toate valorile sale din listă, trebuie să utilizați metoda ArrayList clear() . Este, dar desigur că puteți folosi și metoda removeAll() pentru asta. Probabil ai ghicit deja cum să faci asta:

myList.RemoveAll (myList);
Să dăm un exemplu. Într-o criză de sociopatie, să ne golim întreaga listă de prieteni:

 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);
       }
   }
Iată rezultatul:
Lista de prieteni numai pentru băieți: [Alex, Victor, Peter, Lenny, Stu, Scott] noua mea listă de prieteni goală...:[]
Măcar să încercăm să eliminăm elementele de colecție nulă din 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);
       }
   }
Conform definiției metodei removeAll(), avem o excepție în ieșire:
Vechea mea listă de prieteni: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Excepție în firul „principal” java.lang.NullPointerException
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION