Java retainAll 方法

Java retainAll 方法

Java retainAll 方法

1. 简介

retainAll 方法是 Java 集合框架中的一个方法,用于将一个集合中的元素与另一个集合中的元素进行比较,并保留相同的元素,删除不同的元素。

该方法是 Collection 接口的默认方法,可以被实现了 Collection 接口的类直接调用。retainAll 方法会修改原有集合,将不符合条件的元素去除。

retainAll 方法的语法如下:

boolean retainAll(Collection<?> c)

其中,c 是另一个集合,表示需要与原有集合进行比较的集合。

2. 示例代码

import java.util.ArrayList;
import java.util.List;

public class RetainAllExample {
    public static void main(String[] args) {
        // 创建两个集合
        List<String> list1 = new ArrayList<>();
        list1.add("apple");
        list1.add("banana");
        list1.add("orange");
        list1.add("grape");

        List<String> list2 = new ArrayList<>();
        list2.add("apple");
        list2.add("kiwi");
        list2.add("banana");

        // 使用 retainAll 方法比较两个集合
        boolean result = list1.retainAll(list2);

        // 输出结果
        System.out.println("原始集合: " + list1);
        System.out.println("是否有修改: " + result);
    }
}

3. 代码运行结果

原始集合: [apple, banana]
是否有修改: true

4. 解析

在上面的示例代码中,首先创建了两个 ArrayList 类型的集合 list1list2,并为两个集合分别添加了一些元素。

然后,调用 list1retainAll 方法,将 list2 作为参数传入。该方法会比较 list1list2 中的元素,并将不在 list2 中的元素从 list1 中删除。

最后,通过输出语句打印了 list1 的内容和 retainAll 方法的返回值。

在本例中,list1 中的元素是 “apple”, “banana”, “orange”, “grape”,list2 中的元素是 “apple”, “kiwi”, “banana”。

由于 list1list2 中的共同元素是 “apple” 和 “banana”,所以 list1.retainAll(list2) 方法会将不在 list2 中的元素 “orange” 和 “grape” 从 list1 中删除。

最后,list1 的内容变为了只包含 “apple” 和 “banana” 的集合。

5. 注意事项

  • retainAll 方法会修改原有集合,删除不符合条件的元素。因此,在使用 retainAll 方法之前,应该确保原有集合是可修改的。
  • retainAll 方法默认使用元素的 equals 方法进行比较。如果要比较自定义对象的话,需要在自定义对象中重写 equals 方法。

6. 总结

retainAll 方法是 Java 集合框架中的一个实用方法,可以用于比较两个集合并保留相同的元素。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程