CodeGym /Blog Java /rawak /Kaedah ArrayList removeAll() dalam Java
John Squirrels
Tahap
San Francisco

Kaedah ArrayList removeAll() dalam Java

Diterbitkan dalam kumpulan
Kaedah ArrayList removeAll() dalam Java tidak mengalih keluar semua elemen daripada ArrayList yang betul , seperti yang mungkin dicadangkan oleh namanya. Jika anda memerlukan operasi ini, gunakan kaedah ArrayList clear() . Tidak seperti clear() , kaedah removeAll() mengalih keluar semua item daripada senarai tertentu yang terkandung dalam koleksi lain.

removeAll() sintaks dan pengisytiharan

Berikut ialah sintaks kaedah:

boolean removeAll(Collection<?> c)
Di mana c ialah koleksi yang mengandungi elemen untuk dialih keluar daripada senarai ini. Kaedah ini kembali benar jika senarai ini berubah akibat daripada panggilan. Ia juga boleh membuang pengecualian: ClassCastException — jika kelas elemen senarai ini tidak serasi dengan koleksi yang ditentukan NullPointerException — jika senarai mengandungi elemen null dan koleksi yang ditentukan tidak membenarkan unsur null, atau jika koleksi yang ditentukan adalah null

contoh kod removeAll().

Katakan anda mempunyai senarai rakan pada rangkaian sosial anda. Nah, itu perkara biasa buat masa ini. Selain itu, katakan bahawa anda seorang yang teliti, dan masukkan semua orang yang tidak berpuas hati anda pada senarai musuh khas, tidak kira sama ada musuh anda adalah dalam kalangan rakan rangkaian sosial anda atau tidak. Anda telah membuat keputusan untuk mengosongkan senarai rakan anda daripada semua orang yang bersimpati. Kaedah removeAll () pasti akan membantu dengan ini:

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);
       }
   }
Outputnya ialah:
Senarai rakan lama saya: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Semua musuh saya: [Ben, Scott, Chuck, Olly, Sam] Senarai rakan baharu tanpa musuh: [Alex, Ivy, Victor, Peter, Lenny, Stu, Olivia]
Seperti yang anda lihat, kaedah itu memadamkan musuh anda Olly dan Scott. Anda tidak mempunyai musuh Ben, Chuck dan Sam dalam senarai rakan anda. Anda mungkin perasan bahawa menurut pengisytiharan kaedah removeAll() anda boleh memadamkan daripada senarai anda bukan sahaja nilai daripada senarai lain, tetapi daripada koleksi rawak. Mari kita dapatkan contoh dengan HashMap . Dalam kes ini, anda perlu menyatakan secara eksplisit bahawa anda ingin mengalih keluar rekod yang sepadan, contohnya, dengan nilai (removeAll (collection.values()) atau keys (removeAll (collection.keySet()) . Mari bayangkan bahawa kita mempunyai HashMap dengan nama semua gadis dalam kalangan rakan kami, dan kami perlu meninggalkan hanya lelaki dalam friendList(Saya tidak tahu mengapa ini mungkin diperlukan, tetapi anda tidak pernah tahu). Mari kembali kepada contoh kami dengan senarai rakan lama, cipta HasMap perempuan dan alih keluar daripada senarai rakan semua gadis yang namanya ditulis dalam nilai HashMap kami .

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);
       }
   }
Berikut adalah outputnya:
Senarai rakan lama saya: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] senarai rakan lelaki sahaja: [Alex, Victor, Peter, Lenny, Stu, Scott]

Beberapa kes khas

Pada permulaan artikel ini saya menulis bahawa untuk mengalih keluar semua nilainya daripada senarai, anda perlu menggunakan kaedah ArrayList clear() . Ia adalah, tetapi sudah tentu anda juga boleh menggunakan kaedah removeAll() untuk ini. Anda mungkin sudah meneka cara melakukan ini:

myList.RemoveAll (myList);
Mari kita beri contoh. Dalam keadaan sosiopati, mari kosongkan seluruh friendList kami:

 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);
       }
   }
Berikut adalah outputnya:
Senarai rakan lelaki sahaja: [Alex, Victor, Peter, Lenny, Stu, Scott] senarai rakan kosong saya yang baharu...:[]
Sekurang-kurangnya mari kita cuba mengalih keluar elemen koleksi nol daripada ArrayList kami :

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);
       }
   }
Menurut definisi kaedah removeAll() kami mempunyai pengecualian dalam output:
Senarai rakan lama saya: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Pengecualian dalam utas "utama" java.lang.NullPointerException
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION