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

ArrayList removeAll()-metoden i Java

Publisert i gruppen
ArrayList removeAll() -metoden i Java fjerner ikke alle elementer fra riktig ArrayList , slik navnet antyder. Hvis du trenger denne operasjonen, bruk ArrayList clear() -metoden. I motsetning til clear() fjerner removeAll ()- metoden alle elementer fra en gitt liste som finnes i en annen samling.

removeAll() syntaks og erklæring

Her er metodesyntaksen:

boolean removeAll(Collection<?> c)
Hvor c er en samling som inneholder elementer som skal fjernes fra denne listen. Denne metoden returnerer sann hvis denne listen endres som et resultat av anropet. Det kan også gi unntak: ClassCastException - hvis klassen til et element i denne listen er inkompatibel med den spesifiserte samlingen NullPointerException - hvis listen inneholder et null-element og den spesifiserte samlingen ikke tillater null-elementer, eller hvis den spesifiserte samlingen er null

removeAll() kodeeksempel

La oss si at du har en venneliste på det sosiale nettverket ditt. Vel, det er det vanlige for nå. La oss også si at du er en omhyggelig en, og skriv inn alle dine dårlige ønsker på en spesiell fiendeliste, uavhengig av om fiendene dine er blant vennene dine på sosiale nettverk eller ikke. Du har bestemt deg for å tømme vennelisten din for alle dårlige ønsker. RemoveAll () -metoden vil definitivt hjelpe 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);
       }
   }
Utgangen er:
Min gamle venneliste: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Alle mine fiender: [Ben, Scott, Chuck, Olly, Sam] nye venneliste uten fiender: [Alex, Ivy, Victor, Peter, Lenny, Stu, Olivia]
Som du kan se, slettet metoden fiendene dine Olly og Scott. Du hadde ikke hatt fiendene Ben, Chuck og Sam på vennelisten din. Du har sikkert lagt merke til at i henhold til removeAll()- metodedeklarasjonen kan du slette fra listen din ikke bare verdier fra en annen liste, men fra en tilfeldig samling. La oss ta et eksempel med HashMap . I dette tilfellet må du eksplisitt angi at du vil fjerne de postene som for eksempel samsvarer med verdier (removeAll (collection.values()) eller nøkler (removeAll (collection.keySet()) . La oss forestille oss at vi har en HashMap med navnene på alle jentene blant vennene våre, og vi må bare la gutter være i vennelisten(Jeg vet ikke hvorfor dette kan være nødvendig, men man vet aldri). La oss gå tilbake til eksemplet vårt med den gamle vennelisten, lag en HasMap for jenter og fjern fra vennelisten alle jenter hvis navn er skrevet i verdiene til 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 utgangen:
Min gamle venneliste: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] bare venner for gutter Liste: [Alex, Victor, Peter, Lenny, Stu, Scott]

Noen spesielle tilfeller

I begynnelsen av denne artikkelen skrev jeg at for å fjerne alle verdiene fra listen, må du bruke ArrayList clear()- metoden. Det er det, men du kan selvfølgelig også bruke removeAll() -metoden for dette. Du har sikkert allerede gjettet hvordan du gjør dette:

myList.RemoveAll (myList);
La oss gi et eksempel. I et anfall av sosiopati, la oss tømme hele vennelisten vår:

 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 utgangen:
bare gutter venneliste: [Alex, Victor, Peter, Lenny, Stu, Scott] min nye tomme venneliste...:[]
La oss i det minste prøve å fjerne null-samlingselementer fra 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() -metodedefinisjonen har vi et unntak i utdata:
Min gamle venneliste: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Unntak i tråden "hoved" java.lang.NullPointerException
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION