📌  相关文章
📜  Java中的 AbstractSet retainAll() 方法与示例(1)

📅  最后修改于: 2023-12-03 15:31:49.720000             🧑  作者: Mango

Java中的 AbstractSet retainAll() 方法与示例

Java中的 AbstractSet 类是一个抽象类,它实现了Set接口的大部分方法。其中一个比较重要的方法是 retainAll(),它用于保留AbstractSet中与给定集合中元素相同的元素。

方法签名
boolean retainAll(Collection<?> c)

此方法将AbstractSet中与给定集合中元素不同的元素删除,并返回true,如果AbstractSet发生更改,则为true,否则为false。

参数说明

c:要与此AbstractSet进行比较的集合。如果为null,则会抛出异常。

示例

以下是一个示例,演示retainAll()方法如何保留AbstractSet中与给定集合中元素相同的元素:

import java.util.*;

public class SetExample {
    public static void main(String[] args) {
        //创建一个AbstractSet集合
        AbstractSet<Integer> numbers = new HashSet<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(4);
        System.out.println("原始集合:" + numbers);

        //创建一个待比较的集合
        List<Integer> list = new ArrayList<>();
        list.add(2);
        list.add(4);
        list.add(6);

        //调用retainAll()方法
        boolean result = numbers.retainAll(list);
        if(result){
            System.out.println("AbstractSet集合发生了更改");
        }else{
            System.out.println("AbstractSet集合没有发生更改");
        }
        System.out.println("AbstractSet集合:" + numbers);
    }
}

运行以上程序,输出如下:

原始集合:[1, 2, 3, 4]
AbstractSet集合发生了更改
AbstractSet集合:[2, 4]

在此示例中,创建了一个AbstractSet集合numbers,其中包含1、2、3和4这些元素。然后,创建一个待比较的集合list,其中包含2、4和6这些元素。

接下来,调用numbers.retainAll(list)方法,将AbstractSet集合中与list中元素不同的元素删除。在这种情况下,1和3被删除,只留下2和4,因此AbstractSet集合发生了更改。

注意,Collections类中还有一个retainAll()方法,它与AbstractSet的retainAll()方法功能类似,但接受的参数是Collection类型。此外,如果给定的集合中包含与原始集合不同的元素,则删除原始集合中的所有元素,并将给定集合添加到其中。因此,在使用这些方法时需要注意。

以上就是AbstractSet类中的retainAll()方法及其示例。