Метод AbstractCollection keepAll () в Java с примерами

Опубликовано: 1 Марта, 2022

Метод keepAll () в AbstractCollection помогает сохранить элементы указанной коллекции из другой коллекции и удаляет несопоставленные элементы из результата.

Синтаксис:

public boolean keepAll (Коллекция Коллекция)

Параметры: этот метод принимает коллекцию параметров, которая представляет собой коллекцию, содержащую элементы, которые необходимо сохранить.

Возвращаемое значение: метод возвращает логическое значение . Он возвращает «истину», если элементы в коллекциях успешно сохранены, а если нет, возвращается значение «ложь».

Исключения: этот метод вызывает следующие исключения:

  • UnsupportedOperationException: если метод keepAll () не поддерживается коллекцией.
  • ClassCastException: если тип любого элемента основной коллекции несовместим с указанной коллекцией (то есть должен быть сохранен). Это необязательно.
  • NullPointerException: если основная коллекция состоит из любого нулевого элемента, а указанная коллекция не допускает никаких нулевых значений или если указанная коллекция имеет нулевой элемент (ы). Это необязательно.

Ниже приведены несколько примеров, иллюстрирующих использование метода keepAll ():

Program 1

// Java program to illustrate retainAll() method
  
import java.util.*;
  
public class AbstractCollectionDemo {
    public static void main(String[] args)
    {
        // Creating an arraylist
        AbstractCollection<Object> set1
            = new ArrayList<Object>();
  
        // adding values in set 1 list
        set1.add("one");
        set1.add("two");
        set1.add("three");
  
        // creating another arraylist
        AbstractCollection<Object> set2
            = new ArrayList<Object>();
  
        // adding values in set 2 list
        set2.add("three");
        set2.add("one");
        set2.add("five");
  
        // before invoking retainAll()
        System.out.println("Set 1 contains: "
                           + set1 + " ");
        System.out.println("Set 2 contains: "
                           + set2 + " ");
  
        // invoking retainAll()
        set2.retainAll(set1);
  
        // after invoking retainAll()
        System.out.println("Set 2 after"
                           + " invoking retainAll() method: "
                           + set2);
    }
}
Output:
Set 1 contains:
[one, two, three]

Set 2 contains:
[three, one, five]

Set 2 after invoking retainAll() method:
[three, one]

Program 2: To show NullPointerException

// Java program to illustrate retainAll() method
  
import java.util.*;
  
public class NullPointerExample {
    public static void main(String[] args)
    {
  
        // Creating an arraylist
        // and assigning null to it
        AbstractCollection<Object> set1 = null;
  
        // creating another arraylist
        AbstractCollection<Object> set2
            = new ArrayList<Object>();
  
        // adding values in set 2 list
        set2.add("one");
        set2.add("two");
        set2.add("three");
  
        // before invoking retainAll()
        System.out.println("Set 1 contains:"
                           + set1 + " ");
        System.out.println("Set 2 contains:"
                           + set2 + " ");
  
        try {
            // invoking retainAll()
            set2.retainAll(set1);
  
            // after invoking retainAll()
            System.out.println("Set 2 after invoking "
                               + "retainAll() method: "
                               + set2);
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
Output:
Set 1 contains:null

Set 2 contains:[one, two, three]

java.lang.NullPointerException