CodeGym /Blog Java /Ngẫu nhiên /Phương thức ArrayList removeAll() trong Java

Phương thức ArrayList removeAll() trong Java

Xuất bản trong nhóm
Phương thức ArrayList removeAll() trong Java không xóa tất cả các phần tử khỏi ArrayList thích hợp , như tên của nó có thể gợi ý. Nếu bạn cần thao tác này, hãy sử dụng phương thức Clear() của ArrayList . Không giống như clear() , phương thức removeAll() loại bỏ tất cả các mục khỏi một danh sách nhất định được chứa trong một bộ sưu tập khác.

cú pháp và khai báo removeAll()

Đây là cú pháp phương thức:

boolean removeAll(Collection<?> c)
Trong đó c là tập hợp chứa các phần tử cần xóa khỏi danh sách này. Phương thức này trả về true nếu danh sách này thay đổi do kết quả của cuộc gọi. Ngoài ra, nó có thể đưa ra các ngoại lệ: ClassCastException — nếu lớp của một phần tử trong danh sách này không tương thích với tập hợp đã chỉ định NullPulumException — nếu danh sách chứa phần tử null và tập hợp đã chỉ định không cho phép phần tử null hoặc nếu tập hợp đã chỉ định là null

ví dụ mã removeAll()

Giả sử bạn có một danh sách bạn bè trên mạng xã hội của mình. Vâng, đó là điều bình thường cho bây giờ. Ngoài ra, giả sử bạn là một người tỉ mỉ và nhập tất cả những kẻ xấu của bạn vào danh sách kẻ thù đặc biệt, bất kể kẻ thù của bạn có nằm trong số bạn bè trên mạng xã hội của bạn hay không. Bạn đã quyết định xóa danh sách bạn bè của mình khỏi tất cả những kẻ xấu. Phương thức removeAll() chắc chắn sẽ giúp ích cho việc này:

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);
       }
   }
Đầu ra là:
Danh sách bạn cũ của tôi: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Tất cả kẻ thù của tôi: [Ben, Scott, Chuck, Olly, Sam] Danh sách bạn mới không có kẻ thù: [Alex, Ivy, Victor, Peter, Lenny, Stu, Olivia]
Như bạn có thể thấy, phương pháp này đã xóa kẻ thù của bạn là Olly và Scott. Bạn đã không có kẻ thù Ben, Chuck và Sam trong danh sách bạn bè của bạn. Bạn có thể nhận thấy rằng theo khai báo phương thức removeAll(), bạn có thể xóa khỏi danh sách của mình không chỉ các giá trị từ danh sách khác mà còn từ một bộ sưu tập ngẫu nhiên. Hãy lấy một ví dụ với HashMap . Trong trường hợp này, bạn cần chỉ ra rõ ràng rằng bạn muốn xóa những bản ghi phù hợp, chẳng hạn như với các giá trị (removeAll (collection.values()) hoặc khóa (removeAll (collection.keySet()) . Hãy tưởng tượng rằng chúng ta có một HashMap với tên của tất cả các cô gái trong số bạn bè của chúng tôi và chúng tôi chỉ cần để lại các chàng trai trong friendList(Tôi không biết tại sao điều này có thể cần thiết, nhưng bạn không bao giờ biết). Hãy quay lại ví dụ của chúng ta với danh sách bạn bè cũ, tạo một HasMap dành cho các cô gái và xóa khỏi danh sách bạn bè tất cả các cô gái có tên được viết trong các giá trị của HashMap của chúng ta .

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);
       }
   }
Đây là đầu ra:
Danh sách bạn cũ của tôi: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Danh sách bạn chỉ dành cho con trai: [Alex, Victor, Peter, Lenny, Stu, Scott]

Một số trường hợp đặc biệt

Ở phần đầu của bài viết này, tôi đã viết rằng để xóa tất cả các giá trị của nó khỏi danh sách, bạn cần sử dụng phương thức Clear() của ArrayList . Đúng vậy, nhưng tất nhiên bạn cũng có thể sử dụng phương thức removeAll() cho việc này. Bạn có thể đã đoán làm thế nào để làm điều này:

myList.RemoveAll (myList);
Hãy đưa ra một ví dụ. Trong một cơn bệnh xã hội, hãy làm trống toàn bộ danh sách bạn bè của chúng ta:

 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);
       }
   }
Đây là đầu ra:
Danh sách bạn chỉ dành cho con trai: [Alex, Victor, Peter, Lenny, Stu, Scott] danh sách bạn trống mới của tôi...:[]
Ít nhất hãy thử xóa các phần tử null-collection khỏi ArrayList của chúng ta :

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);
       }
   }
Theo định nghĩa phương thức removeAll(), chúng tôi có một ngoại lệ ở đầu ra:
Danh sách bạn cũ của tôi: [Alex, Ivy, Victor, Peter, Lenny, Olly, Stu, Scott, Olivia] Ngoại lệ trong chủ đề "chính" java.lang.NullPulumException
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION