CodeGym /Java blogg /Slumpmässig /ArrayList removeAll()-metoden i Java
John Squirrels
Nivå
San Francisco

ArrayList removeAll()-metoden i Java

Publicerad i gruppen
Metoden ArrayList removeAll() i Java tar inte bort alla element från korrekt ArrayList , som dess namn kan antyda. Om du behöver den här operationen, använd ArrayList clear() -metoden. Till skillnad från clear() tar metoden removeAll() bort alla objekt från en given lista som finns i en annan samling.

removeAll() syntax och deklaration

Här är metodsyntaxen:

boolean removeAll(Collection<?> c)
Där c är en samling som innehåller element som ska tas bort från denna lista. Denna metod returnerar sant om listan ändras som ett resultat av anropet. Det kan också skapa undantag: ClassCastException — om klassen för ett element i den här listan är inkompatibel med den angivna samlingen NullPointerException — om listan innehåller ett null-element och den angivna samlingen inte tillåter null-element, eller om den angivna samlingen är null

removeAll()-kodexempel

Låt oss säga att du har en vänlista på ditt sociala nätverk. Nåväl, det är det vanliga just nu. Låt oss också säga att du är noggrann och skriv in alla dina illvilliga på en speciell fiendelista, oavsett om dina fiender är bland dina sociala nätverksvänner eller inte. Du har bestämt dig för att rensa din vänlista från alla illvilliga. Metoden removeAll() kommer definitivt att hjälpa till med detta:

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);
       }
   }
Utgången är:
Min gamla vänlista: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Alla mina fiender: [Ben, Scott, Chuck, Olly, Sam] nya vän Lista utan fiender: [Alex, Ivy, Victor, Peter, Lenny, Stu, Olivia]
Som du kan se raderade metoden dina fiender Olly och Scott. Du hade inte haft fienderna Ben, Chuck och Sam på din vänlista. Du har förmodligen märkt att enligt removeAll() -metodens deklaration kan du radera från din lista inte bara värden från en annan lista, utan från en slumpmässig samling. Låt oss ta ett exempel med HashMap . I det här fallet måste du uttryckligen ange att du vill ta bort de poster som matchar till exempel värden ( removeAll (collection.values()) eller nycklar (removeAll (collection.keySet()) . Låt oss föreställa oss att vi har en HashMap med namnen på alla tjejer bland våra vänner, och vi behöver bara lämna pojkar i vänlistan(Jag vet inte varför detta kan behövas, men man vet aldrig). Låt oss gå tillbaka till vårt exempel med den gamla vänlistan, skapa en HasMap för tjejer och ta bort alla tjejer vars namn är skrivna i värdena på vår HashMap från vänlistan .

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);
       }
   }
Här är utgången:
Min gamla vänlista: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] bara pojkar vänLista: [Alex, Victor, Peter, Lenny, Stu, Scott]

Några speciella fall

I början av den här artikeln skrev jag att för att ta bort alla dess värden från listan måste du använda metoden ArrayList clear() . Det är det, men självklart kan du också använda metoden removeAll() för detta. Du har förmodligen redan gissat hur du gör detta:

myList.RemoveAll (myList);
Låt oss ge ett exempel. I ett anfall av sociopatie, låt oss tömma hela vår vänlista:

 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);
       }
   }
Här är utgången:
boys only friendLista: [Alex, Victor, Peter, Lenny, Stu, Scott] min nya tomma vänlista...:[]
Låt oss åtminstone försöka ta bort null-collection-element från vår 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);
       }
   }
Enligt metoddefinitionen removeAll() har vi ett undantag i output:
Min gamla vänlista: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Undantag i tråden "huvud" java.lang.NullPointerException
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION