📜  Java ArrayList keepAll()

📅  最后修改于: 2020-09-27 00:28:11             🧑  作者: Mango

Java ArrayList keepAll()方法仅保留arraylist中指定集合中也存在的那些元素。

并且,从列表中删除指定集合中不存在的所有那些元素。

retainAll()方法的语法为:

arraylist.retainAll(Collection c);

在这里, arraylistArrayList类的对象。


keepAll()参数

retainAll()方法采用单个参数。

  • collection-仅将collection中存在的那些元素保留在arraylist中。

keepAll()返回值
  • 如果从arraylist中删除元素,则返回true
  • 如果arraylist中存在的元素类与指定集合中的元素类不兼容,则抛出ClassCastException
  • 如果arraylist包含null元素,并且指定的集合不允许null元素,则抛出NullPointerException

示例1:Java ArrayList keepAll()
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        // create an ArrayList
        ArrayList languages1 = new ArrayList<>();

        // insert element to the ArrayList
        languages1.add("JavaScript");
        languages1.add("Python");
        languages1.add("Java");
        System.out.println("ArrayList 1: " + languages1);

        // create another ArrayList
        ArrayList languages2 = new ArrayList<>();

        // add elements to ArrayList
        languages2.add("English");
        languages2.add("Java");
        languages2.add("Python");
        System.out.println("ArrayList 2: " + languages2);

        // retain the common element
        languages1.retainAll(languages2);
        System.out.println("Common Elements: " + languages1);
    }
}

输出

ArrayList 1: [JavaScript, Python, Java]
ArrayList 2: [English, Java, Python]
Common Elements: [Python, Java]

在上面的示例中,我们创建了两个数组列表,名为language1language2 。注意这一行,

languages1.retainAll(languages2);

在这里,我们将arraylist 语言2作为参数传递给retainAll()方法。该方法删除从languages1中不存在在languages2所有元素。因此,仅保留共同的要素。


示例2:显示ArrayList和HashSet之间的公共元素
import java.util.ArrayList;
import java.util.HashSet;

class Main {
    public static void main(String[] args) {
        // create an ArrayList
        ArrayList numbers = new ArrayList<>();

        // add element to ArrayList
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("ArrayList: " + numbers);

        // create a HashSet
        HashSet primeNumbers = new HashSet<>();

        // add elements to HashSet
        primeNumbers.add(2);
        primeNumbers.add(3);
        primeNumbers.add(5);
        System.out.println("HashSet: " + primeNumbers);

        // retain common elements in the ArrayList
        numbers.retainAll(primeNumbers);
        System.out.println("Common Elements: " + numbers);
    }
}

输出

ArrayList: [1, 2, 3]
HashSet: [2, 3, 5]
Common Elements: [2, 3]

在上面的示例中,我们创建了一个名为numbers的数组列表和一个名为primeNumbers的哈希集。注意这一行,

numbers.retainAll(primeNumbers);

在这里, retainAll()方法从primeNumbers中不存在的数字中删除所有那些元素。并且,仅保留公共元素。因此, 23保留在arraylist 编号中