CodeGym /Java Blogu /Rastgele /Java'da ArrayList removeAll() yöntemi
John Squirrels
Seviye
San Francisco

Java'da ArrayList removeAll() yöntemi

grupta yayınlandı
Java'daki ArrayList removeAll() yöntemi , adından da anlaşılacağı gibi, uygun ArrayList'ten tüm öğeleri kaldırmaz . Bu işleme ihtiyacınız varsa, ArrayList clear() yöntemini kullanın. clear() yönteminden farklı olarak removeAll() yöntemi , belirli bir listeden başka bir koleksiyonda yer alan tüm öğeleri kaldırır.

removeAll() sözdizimi ve bildirimi

İşte yöntem sözdizimi:

boolean removeAll(Collection<?> c)
Burada c, bu listeden çıkarılacak öğeleri içeren bir koleksiyondur. Bu liste, çağrı sonucunda değiştiyse, bu yöntem true değerini döndürür. Ayrıca istisnalar da atabilir: ClassCastException — bu listedeki bir öğenin sınıfı belirtilen koleksiyonla uyumsuzsa NullPointerException — liste boş bir öğe içeriyorsa ve belirtilen koleksiyon boş öğelere izin vermiyorsa veya belirtilen koleksiyon boşsa

removeAll() kod örneği

Diyelim ki sosyal ağınızda bir arkadaş listeniz var. Neyse, şimdilik olağan bir şey. Ayrıca titiz biri olduğunuzu varsayalım ve düşmanınız sosyal ağ arkadaşlarınızdan olsun ya da olmasın tüm düşmanlarınızı özel bir düşman listesine yazın. Arkadaş listenizi tüm kötü niyetli kişilerden temizlemeye karar verdiniz. removeAll () yöntemi kesinlikle bu konuda yardımcı olacaktır:

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);
       }
   }
Çıktı:
Eski arkadaş listem: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Tüm düşmanlarım: [Ben, Scott, Chuck, Olly, Sam] Düşmansız yeni arkadaş listesi: [Alex, Ivy, Victor, Peter, Lenny, Stu, Olivia]
Gördüğünüz gibi, yöntem düşmanlarınız Olly ve Scott'ı sildi. Arkadaş listenizde düşmanlarınız Ben, Chuck ve Sam yoktu. RemoveAll() yöntemi bildirimine göre, listenizden yalnızca başka bir listedeki değerleri değil, rastgele bir koleksiyondan da silebileceğinizi muhtemelen fark etmişsinizdir . HashMap ile bir örnek verelim . Bu durumda, örneğin değerlerle (removeAll (collection.values())) veya anahtarlarla (removeAll (collection.keySet())) eşleşen kayıtları kaldırmak istediğinizi açıkça belirtmeniz gerekir . Arkadaşlarımız arasındaki tüm kızların isimlerini içeren HashMap ve arkadaş Listesinde sadece erkekleri bırakmamız gerekiyor.(Buna neden ihtiyaç duyulabileceğini bilmiyorum ama asla bilemezsiniz). Eski arkadaş listeli örneğimize geri dönelim, bir kız HasMap'i oluşturalım ve HashMap'imizin değerlerinde isimleri yazan tüm kızları arkadaş listesinden çıkaralım .

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);
       }
   }
İşte çıktı:
Eski arkadaş listem: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] erkeklerin tek arkadaşListesi: [Alex, Victor, Peter, Lenny, Stu, Scott]

Bazı özel durumlar

Bu makalenin başında listeden tüm değerlerini kaldırmak için ArrayList clear() yöntemini kullanmanız gerektiğini yazmıştım. Öyle, ama elbette bunun için removeAll() yöntemini de kullanabilirsiniz . Muhtemelen bunu nasıl yapacağınızı zaten tahmin etmişsinizdir:

myList.RemoveAll (myList);
Bir örnek verelim. Sosyopati anında, tüm arkadaş Listemizi boşaltalım:

 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);
       }
   }
İşte çıktı:
sadece erkeklerin arkadaş listesi: [Alex, Victor, Peter, Lenny, Stu, Scott] yeni boş arkadaş listem...:[]
En azından boş koleksiyon öğelerini ArrayList'imizden kaldırmaya çalışalım :

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);
       }
   }
removeAll() yöntem tanımına göre, çıktıda bir istisnamız var:
Eski arkadaş listem: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] "main" ileti dizisinde istisna java.lang.NullPointerException
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION