CodeGym /Java-Blog /Random-DE /ArrayList-Methode „removeAll()“ in Java
Autor
Pavlo Plynko
Java Developer at CodeGym

ArrayList-Methode „removeAll()“ in Java

Veröffentlicht in der Gruppe Random-DE
Die ArrayList- Methode „removeAll()“ in Java entfernt nicht alle Elemente aus der eigentlichen ArrayList , wie der Name vermuten lässt. Wenn Sie diesen Vorgang benötigen, verwenden Sie die Methode ArrayList clear() . Im Gegensatz zu „clear()“ entfernt die Methode „removeAll()“ alle Elemente aus einer bestimmten Liste, die in einer anderen Sammlung enthalten sind.

Syntax und Deklaration von „removeAll()“.

Hier ist die Methodensyntax:

boolean removeAll(Collection<?> c)
Wobei c eine Sammlung ist, die Elemente enthält, die aus dieser Liste entfernt werden sollen. Diese Methode gibt true zurück, wenn sich diese Liste durch den Aufruf geändert hat. Außerdem können Ausnahmen ausgelöst werden: ClassCastException – wenn die Klasse eines Elements dieser Liste mit der angegebenen Sammlung nicht kompatibel ist. NullPointerException – wenn die Liste ein Nullelement enthält und die angegebene Sammlung keine Nullelemente zulässt oder wenn die angegebene Sammlung null ist

Codebeispiel für „removeAll()“.

Nehmen wir an, Sie haben eine Freundesliste in Ihrem sozialen Netzwerk. Nun, im Moment ist es das Übliche. Nehmen wir außerdem an, dass Sie sehr gewissenhaft sind und alle Ihre Groller in eine spezielle Feindesliste eintragen, unabhängig davon, ob Ihre Feinde zu Ihren Freunden in den sozialen Netzwerken gehören oder nicht. Sie haben beschlossen, Ihre Freundesliste von allen Ungläubigen zu befreien. Die Methode „removeAll()“ wird dabei definitiv helfen:

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);
       }
   }
Die Ausgabe ist:
Meine alte Freundesliste: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Alle meine Feinde: [Ben, Scott, Chuck, Olly, Sam] neue Freundesliste ohne Feinde: [Alex, Ivy, Victor, Peter, Lenny, Stu, Olivia]
Wie Sie sehen, hat die Methode Ihre Feinde Olly und Scott gelöscht. Die Feinde Ben, Chuck und Sam hatten Sie nicht auf Ihrer Freundesliste. Sie haben wahrscheinlich bemerkt, dass Sie gemäß der Methodendeklaration „ removeAll()“ nicht nur Werte aus einer anderen Liste, sondern auch aus einer zufälligen Sammlung aus Ihrer Liste löschen können. Lassen Sie uns ein Beispiel mit HashMap haben . In diesem Fall müssen Sie explizit angeben, dass Sie die Datensätze entfernen möchten, die beispielsweise mit Werten (removeAll (collection.values()) oder Schlüsseln (removeAll (collection.keySet()) übereinstimmen . Stellen wir uns vor, wir haben einen HashMap mit den Namen aller Mädchen unter unseren Freunden, und wir müssen nur Jungen in der Freundesliste belassen(Ich weiß nicht, warum das nötig sein könnte, aber man weiß nie). Kehren wir zu unserem Beispiel mit der alten Freundesliste zurück, erstellen eine Mädchen- HasMap und entfernen aus der Freundesliste alle Mädchen, deren Namen in den Werten unserer HashMap geschrieben sind .

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);
       }
   }
Hier ist die Ausgabe:
Meine alte Freundesliste: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Freundesliste nur für Jungen: [Alex, Victor, Peter, Lenny, Stu, Scott]

Einige Sonderfälle

Am Anfang dieses Artikels habe ich geschrieben, dass Sie die Methode ArrayList clear() verwenden müssen, um alle Werte aus der Liste zu entfernen . Ja, aber natürlich können Sie dafür auch die Methode „removeAll()“ verwenden. Sie haben wahrscheinlich schon erraten, wie das geht:

myList.RemoveAll (myList);
Geben wir ein Beispiel. In einem Anfall von Soziopathie leeren wir unsere gesamte Freundesliste:

 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);
       }
   }
Hier ist die Ausgabe:
Freundesliste nur für Jungen: [Alex, Victor, Peter, Lenny, Stu, Scott] meine neue leere Freundesliste...:[]
Versuchen wir zumindest, Null-Sammlungselemente aus unserer ArrayList zu entfernen :

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);
       }
   }
Gemäß der Definition der Methode „removeAll()“ haben wir eine Ausnahme in der Ausgabe:
Meine alte Freundesliste: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Ausnahme im Thread „main“ java.lang.NullPointerException
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION