retainAll()方法的介绍与示例

retainAll()方法的介绍与示例

retainAll()方法的介绍与示例

1. retainAll()方法的定义和作用

在Java中,retainAll()方法是集合类中的一个方法,用于从调用该方法的集合中保留与另一个集合中相同的元素,删除集合中不同的元素。这个方法会修改原始集合,将其中不在另一个集合中的元素删除,只保留相同的元素。

retainAll()方法的定义如下所示:

boolean retainAll(Collection<?> c)
Java

其中,c表示一个集合,代表与调用该方法的集合进行比较的另一个集合。返回值为布尔类型,表示是否对调用该方法的集合进行了修改。如果调用该方法的集合被修改了,返回true;如果没有进行修改,返回false

2. retainAll()方法的使用示例

为了更好地理解retainAll()方法的作用,下面通过几个示例来演示其用法。

示例1:保留两个集合中相同的元素

import java.util.ArrayList;

public class RetainAllExample {
    public static void main(String[] args) {
        // 创建两个ArrayList集合,并初始化元素
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        list1.add(4);
        list1.add(5);

        ArrayList<Integer> list2 = new ArrayList<>();
        list2.add(3);
        list2.add(4);
        list2.add(5);
        list2.add(6);
        list2.add(7);

        // 调用retainAll()方法,保留list1和list2中相同的元素
        boolean isModified = list1.retainAll(list2);

        // 输出调用retainAll()方法后的结果
        System.out.println("调用retainAll()方法后,list1中的元素为:");
        for (int num : list1) {
            System.out.println(num);
        }

        System.out.println("调用retainAll()方法后,是否修改了list1:" + isModified);
    }
}
Java

运行以上示例代码,输出如下:

调用retainAll()方法后,list1中的元素为:
3
4
5
调用retainAll()方法后,是否修改了list1:true
Java

从输出可以看出,调用retainAll()方法后,list1中只保留了与list2相同的元素345,其他元素被删除了。同时,返回值为true,表示调用该方法后,list1被修改了。

示例2:保留集合中的重复元素

import java.util.HashSet;

public class RetainAllExample {
    public static void main(String[] args) {
        // 创建一个HashSet集合,并初始化元素
        HashSet<String> set = new HashSet<>();
        set.add("apple");
        set.add("banana");
        set.add("orange");
        set.add("peach");
        set.add("banana"); // 添加一个重复的元素

        // 调用retainAll()方法,保留集合中的重复元素
        boolean isModified = set.retainAll(set);

        // 输出调用retainAll()方法后的结果
        System.out.println("调用retainAll()方法后,set中的元素为:");
        for (String fruit : set) {
            System.out.println(fruit);
        }

        System.out.println("调用retainAll()方法后,是否修改了set:" + isModified);
    }
}
Java

运行以上示例代码,输出如下:

调用retainAll()方法后,set中的元素为:
banana
orange
apple
peach
调用retainAll()方法后,是否修改了set:true
Java

从输出可以看出,调用retainAll()方法后,set中保留了重复的元素banana,并按照插入的顺序输出。其他元素顺序并没有发生改变。同时,返回值为true,表示调用该方法后,set被修改了。

3. retainAll()方法的注意事项

在使用retainAll()方法时,需要注意以下几点:

  • 执行retainAll()方法的集合会被修改,原始数据会发生变化;
  • 如果传入的集合c中有与调用该方法的集合重复的元素,也会被保留下来;
  • 当集合中没有相同的元素时,调用retainAll()方法会导致调用该方法的集合变为空集合;
  • 如果集合中的元素支持修改操作,修改操作不会影响retainAll()方法的结果。

综上所述,retainAll()方法是一个有用的集合操作方法,可以方便地保留集合中与另一个集合相同的元素,是在处理数据时常用到的重要方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册