Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java ArrayList retainAll() 使用方法及示例

Java ArrayList 方法

Java ArrayList retainAll()方法只保留既存在ArrayList中,也存在于指定集合中的那些元素。

并且,没有出现在指定集合中的所有元素都从arraylist中删除。

retainAll()方法的语法为:

arraylist.retainAll(Collection c);

retainAll()参数

  • collection- 只有存在于集合中的元素才保留在arraylist中。

retainAll()返回值

  • 如果从arraylist中删除元素,则返回true

  • 如果arraylist中存在的元素类与指定集合中的元素类不兼容,则抛出ClassCastException异常

  • 如果arraylist包含null元素,且指定的集合不允许null元素,则抛出NullPointerException

示例1:Java ArrayList retainAll()

import java.util.ArrayList;

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

        //添加元素到 ArrayList
        languages1.add("JavaScript");
        languages1.add("Python");
        languages1.add("Java");
        System.out.println("ArrayList 1: " + languages1);

        //创建另一个 ArrayList
        ArrayList<String> languages2 = new ArrayList<>();

        //添加元素到 ArrayList
        languages2.add("English");
        languages2.add("Java");
        languages2.add("Python");
        System.out.println("ArrayList 2: " + languages2);

        //保留公共元素
        languages1.retainAll(languages2);
        System.out.println("公共元素: " + languages1);
    }
}

输出结果

ArrayList 1: [JavaScript, Python, Java]
ArrayList 2: [English, Java, Python]
公共元素: [Python, Java]

在上面的示例中,我们创建了两个名为languages1和languages2的ArrayList。注意这一行,

languages1.retainAll(languages2);

在这里,我们将arraylist languages2作为参数传递给retainAll()方法。该方法从languages1中删除没有出现在languages2中的所有元素。因此,只保留公共元素。

示例2:显示ArrayList和HashSet之间的公共元素

import java.util.ArrayList;
import java.util.HashSet;

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

        //添加元素到 ArrayList
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        System.out.println("ArrayList: " + numbers);

        //创建一个 HashSet
        HashSet<Integer> primeNumbers = new HashSet<>();

        //添加元素到 HashSet
        primeNumbers.add(2);
        primeNumbers.add(3);
        primeNumbers.add(5);
        System.out.println("HashSet: " + primeNumbers);

        //在ArrayList中保留公共元素
        numbers.retainAll(primeNumbers);
        System.out.println("公共元素: " + numbers);
    }
}

输出结果

ArrayList: [1, 2, 3]
HashSet: [2, 3, 5]
公共元素: [2, 3]

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

numbers.retainAll(primeNumbers);

在此,retainAll()方法会删除numbers中,不存在于primeNumbers中的所有那些元素。并且,仅保留公共元素。因此,23保留在arraylist numbers中。

Java ArrayList 方法