CodeGym /وبلاگ جاوا /Random-FA /متد ArrayList removeAll() در جاوا
John Squirrels
مرحله
San Francisco

متد ArrayList removeAll() در جاوا

در گروه منتشر شد
روش ArrayList removeAll() در جاوا همه عناصر را از ArrayList مناسب حذف نمی کند ، همانطور که از نامش ممکن است نشان دهد. اگر به این عملیات نیاز دارید، از روش ArrayList clear() استفاده کنید . بر خلاف clear() ، متد removeAll() تمام موارد موجود در یک مجموعه دیگر را از یک لیست مشخص حذف می کند.

نحو و اعلان removeAll()

در اینجا نحو روش است:
boolean removeAll(Collection<?> c)
جایی که c مجموعه ای است که حاوی عناصری است که باید از این لیست حذف شوند. اگر این لیست در نتیجه تماس تغییر کند، این روش true را برمی گرداند. همچنین می تواند استثناهایی ایجاد کند: ClassCastException - اگر کلاس یک عنصر از این لیست با مجموعه مشخص شده NullPointerException ناسازگار باشد - اگر لیست حاوی یک عنصر تهی باشد و مجموعه مشخص شده اجازه عناصر تهی را ندهد، یا اگر مجموعه مشخص شده تهی باشد.

نمونه کد removeAll().

فرض کنید یک لیست دوستان در شبکه اجتماعی خود دارید. خب، فعلاً چیز معمولی است. همچنین فرض کنید که شما فردی دقیق هستید و همه بدخواهان خود را بدون توجه به اینکه دشمنان شما در میان دوستان شبکه اجتماعی شما هستند یا خیر، در لیست دشمنان ویژه وارد کنید. شما تصمیم گرفته اید لیست دوستان خود را از همه بدخواهان پاک کنید. متد removeAll() قطعا در این مورد کمک خواهد کرد:
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);
       }
   }
خروجی این است:
لیست دوستان قدیمی من: [الکس، آیوی، ویکتور، پیتر، لنی، اولی، استو، اسکات، اولیویا] همه دشمنان من: [بن، اسکات، چاک، اولی، سم] لیست دوستان جدید بدون دشمن: [الکس، آیوی، ویکتور، پیتر، لنی، استو، اولیویا]
همانطور که می بینید، این روش دشمنان شما، اولی و اسکات را حذف کرد. شما دشمنان بن، چاک و سم را در لیست دوستان خود نداشتید. احتمالاً متوجه شده اید که طبق اعلان متد removeAll() می توانید نه تنها مقادیر لیست دیگری، بلکه از یک مجموعه تصادفی را از لیست خود حذف کنید. بیایید یک مثال با HashMap داشته باشیم . در این مورد، باید به صراحت نشان دهید که می‌خواهید آن رکوردهایی را حذف کنید که برای مثال با مقادیر (removeAll (collection.values()) یا کلیدها (removeAll (collection.keySet()) مطابقت دارند . بیایید تصور کنیم که یک HashMap با نام همه دختران در بین دوستانمان، و ما باید فقط پسران را در لیست دوستان بگذاریم (نمی دانم چرا ممکن است به این نیاز باشد، اما شما هرگز نمی دانید). بیایید به مثال خود با دوست قدیمی برگردیم. لیست کنید، یک HasMap برای دختران ایجاد کنید و همه دخترانی را که نام آنها در مقادیر 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);
       }
   }
در اینجا خروجی است:
لیست دوستان قدیمی من: [الکس، آیوی، ویکتور، پیتر، لنی، اولی، استو، اسکات، اولیویا] لیست دوستان فقط پسران: [الکس، ویکتور، پیتر، لنی، استو، اسکات]

چند مورد خاص

در ابتدای این مقاله نوشتم که برای حذف تمام مقادیر آن از لیست، باید از متد ArrayList clear() استفاده کنید . این است، اما البته می توانید از متد removeAll() نیز برای این کار استفاده کنید. احتمالاً قبلاً حدس زده اید که چگونه این کار را انجام دهید:
myList.RemoveAll (myList);
بیایید یک مثال بزنیم. در یک تناسب اجتماعی، بیایید لیست دوستان خود را خالی کنیم:
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);
       }
   }
در اینجا خروجی است:
لیست دوستان فقط پسران: [الکس، ویکتور، پیتر، لنی، استو، اسکات] لیست دوستان خالی جدید من...:[]
حداقل بیایید سعی کنیم عناصر null-collection را از 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);
       }
   }
طبق تعریف متد removeAll() یک استثنا در خروجی داریم:
لیست دوستان قدیمی من: [الکس، آیوی، ویکتور، پیتر، لنی، اولی، استو، اسکات، اولیویا] استثنا در موضوع "اصلی" java.lang.NullPointerException
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION