Java中CopyOnWriteArraySet的retainAll()方法及示例

Java中CopyOnWriteArraySet的retainAll()方法及示例

java.util.concurrent.CopyOnWriteArraySet 类的 retainAll() 方法用于从此集合中保留包含在指定集合中的所有元素。

语法:

public boolean retainAll(Collection c)

参数: 该方法以集合c作为参数,其中包含要从此集合中保留的元素。

返回值: 该方法返回true,如果此集合因调用而发生更改。

异常: 如果此集合包含空元素且指定的集合不允许空元素(可选),或者指定的集合为null,则此方法会抛出 NullPointerException

以下是用于说明retainAll()方法的示例。

示例1:

//Java程序示例
//用于展示Integer类型值的retainAll()方法

import java.util.concurrent.*;

public class GFG1 {
    public static void main(String[] argv) throws Exception
    {

        try {

            //创建CopyOnWriteArraySet<;Integer>;对象
            CopyOnWriteArraySet<Integer>
                set1 = new CopyOnWriteArraySet<Integer>();

            //填充set1
            set1.add(1);
            set1.add(2);
            set1.add(3);
            set1.add(4);
            set1.add(5);

            //打印set1
            System.out.println("CopyOnWriteArraySet操作前:"
                                   + set1);

            //再次创建CopyOnWriteArraySet<;Integer>对象
            CopyOnWriteArraySet<Integer>
                set2 = new CopyOnWriteArraySet<Integer>();
            set2.add(1);
            set2.add(2);
            set2.add(3);

            //打印set2
            System.out.println("要保留的Collection元素为:"
                                   + set2);

            //使用retainAll()方法删除指定在set2中的元素
            set1.retainAll(set2);

            //打印set1
            System.out.println("CopyOnWriteArraySet操作后:"
                                   + set1);
        }

        catch (NullPointerException e) {
            System.out.println("抛出异常:" + e);
        }
    }
}
CopyOnWriteArraySet操作前:[1, 2, 3, 4, 5]
要保留的Collection元素为:[1, 2, 3]
CopyOnWriteArraySet操作后:[1, 2, 3]

示例2: 用于演示抛出NullPointerException。

// Java程序,演示Integer值的retainAll()方法
  
import java.util.concurrent.*;
  
public class GFG1 {
    public static void main(String[] argv) throws Exception
    {
  
        try {
  
            // 创建CopyOnWriteArraySet<Integer>的对象
            CopyOnWriteArraySet<Integer>
                set1 = new CopyOnWriteArraySet<Integer>();
  
            // 填充set1
            set1.add(1);
            set1.add(2);
            set1.add(3);
            set1.add(4);
            set1.add(5);
  
            // 打印set1
            System.out.println("CopyOnWriteArraySet执行retainAll()操作之前:"
                               + set1);
  
            // 创建CopyOnWriteArraySet<Integer>的另一个对象
            CopyOnWriteArraySet<Integer>
                set2 = null;
  
            // 打印set2
            System.out.println("要保留的集合元素:" + set2);
  
            System.out.println("\n试图将null作为指定的元素传递\n");
  
            // 使用retainAll()方法从set中删除在set2中指定的元素
            set1.retainAll(set2);
  
            // 打印set1
            System.out.println("CopyOnWriteArraySet执行retainAll()操作之后:"
                               + set1);
        }
  
        catch (NullPointerException e) {
            System.out.println("抛出异常:" + e);
        }
    }
}
retainAll()操作之前的CopyOnWriteArraySet:[1, 2, 3, 4, 5]
要保留的集合元素:null

试图将null作为指定的元素传递

抛出异常:java.lang.NullPointerException

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程