CodeGym /Java blog /Tilfældig /ArrayList removeAll() metode i Java
John Squirrels
Niveau
San Francisco

ArrayList removeAll() metode i Java

Udgivet i gruppen
Metoden ArrayList removeAll() i Java fjerner ikke alle elementer fra den korrekte ArrayList , som dens navn måske antyder. Hvis du har brug for denne handling, skal du bruge ArrayList clear() metoden. I modsætning til clear() fjerner metoden removeAll() alle elementer fra en given liste, der er indeholdt i en anden samling.

removeAll() syntaks og erklæring

Her er metodesyntaksen:

boolean removeAll(Collection<?> c)
Hvor c er en samling, der indeholder elementer, der skal fjernes fra denne liste. Denne metode returnerer sand, hvis denne liste ændres som følge af opkaldet. Det kan også give undtagelser: ClassCastException - hvis klassen af ​​et element på denne liste er inkompatibel med den angivne samling NullPointerException - hvis listen indeholder et null-element, og den angivne samling ikke tillader null-elementer, eller hvis den angivne samling er null

removeAll() kodeeksempel

Lad os sige, at du har en venneliste på dit sociale netværk. Nå, det er det sædvanlige for nu. Lad os også sige, at du er en omhyggelig en, og skriv alle dine dårlige ønsker på en særlig fjendeliste, uanset om dine fjender er blandt dine sociale netværksvenner eller ej. Du har besluttet at rydde din venneliste for alle dårlige ønsker. Metoden removeAll() vil helt sikkert hjælpe med dette:

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);
       }
   }
Udgangen er:
Min gamle venneliste: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Alle mine fjender: [Ben, Scott, Chuck, Olly, Sam] nye venner Liste uden fjender: [Alex, Ivy, Victor, Peter, Lenny, Stu, Olivia]
Som du kan se, slettede metoden dine fjender Olly og Scott. Du havde ikke haft fjender Ben, Chuck og Sam på din venneliste. Du har sikkert bemærket, at ifølge removeAll()- metodedeklarationen kan du slette fra din liste ikke kun værdier fra en anden liste, men fra en tilfældig samling. Lad os få et eksempel med HashMap . I dette tilfælde skal du udtrykkeligt angive, at du vil fjerne de poster, der matcher f.eks. værdier (removeAll (collection.values()) eller nøgler (removeAll (collection.keySet()) . Lad os forestille os, at vi har en HashMap med navnene på alle pigerne blandt vores venner, og vi skal kun efterlade drenge i vennelisten(Jeg ved ikke, hvorfor det kan være nødvendigt, men man ved aldrig). Lad os gå tilbage til vores eksempel med den gamle venneliste, opret et pige- HasMap og fjern fra vennelisten alle piger, hvis navne er skrevet i værdierne i vores 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);
       }
   }
Her er outputtet:
Min gamle venneliste: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] kun drengevenner Liste: [Alex, Victor, Peter, Lenny, Stu, Scott]

Nogle særlige tilfælde

I begyndelsen af ​​denne artikel skrev jeg, at for at fjerne alle dens værdier fra listen, skal du bruge ArrayList clear() metoden. Det er det, men du kan selvfølgelig også bruge metoden removeAll() til dette. Du har sikkert allerede gættet, hvordan du gør dette:

myList.RemoveAll (myList);
Lad os give et eksempel. I et anfald af sociopatie, lad os tømme hele vores venneliste:

 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);
       }
   }
Her er outputtet:
boys only friendListe: [Alex, Victor, Peter, Lenny, Stu, Scott] min nye tomme venneliste...:[]
Lad os i det mindste prøve at fjerne null-collection-elementer fra vores 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);
       }
   }
I henhold til removeAll() metodedefinitionen har vi en undtagelse i output:
Min gamle venneliste: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Undtagelse i tråden "hoved" java.lang.NullPointerException
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION