Java中的CopyOnWriteArrayList addAllAbsent()方法以及示例

Java中的CopyOnWriteArrayList addAllAbsent()方法以及示例

CopyOnWriteArrayList 类的 addAllAbsent(E e) 方法会将指定集合中尚未包含在此列表中的所有元素添加到此列表的末尾,按照指定集合迭代器返回的顺序排列。

语法:

public int addAllAbsent(Collection<E> collection)

参数: 该函数接受一个必填参数 collection ,指定将要附加到列表中的集合(如果不存在的话)。

返回值: 该函数返回一个整数值,表示添加到列表中的元素数量。

异常:如果指定的集合为null,则此方法会抛出NullPointerException。

以下程序说明了addAllAbsent()函数:

程序1:

// Java程序,说明了CopyOnWriteArrayList
// addAllAbsent()方法在Java中的使用
  
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // 创建CopyOnWriteArrayList对象
        CopyOnWriteArrayList<Integer> ArrLis
            = new CopyOnWriteArrayList<Integer>();
  
        // 添加元素
        ArrLis.add(2);
        ArrLis.add(3);
        ArrLis.add(4);
        ArrLis.add(7);
  
        // 打印CopyOnWriteArrayList
        System.out.println("CopyOnWriteArrayList: "
                           + ArrLis);
  
        // 创建一个空的Integer ArrayList
        ArrayList<Integer> arr = new ArrayList<Integer>(4);
  
        // 使用add()方法初始化值
        // [1, 2, 3, 4]
        arr.add(1);
        arr.add(2);
        arr.add(3);
        arr.add(4);
  
        // 列表初始化
        System.out.println("The collection to be appended: "
                           + arr);
  
        // 将列表arr附加到列表ArrLis中
        // 使用addAllAbsent()方法
        System.out.println("\nNumber of elements appended"
                           + " using addAllAbsent() method: "
                           + ArrLis.addAllAbsent(arr));
  
        // 打印CopyOnWriteArrayList
        System.out.println("Modified CopyOnWriteArrayList: "
                           + ArrLis);
    }
}
CopyOnWriteArrayList: [2, 3, 4, 7]
The collection to be appended: [1, 2, 3, 4]

Number of elements appended using addAllAbsent() method: 1
Modified CopyOnWriteArrayList: [2, 3, 4, 7, 1]

程序2: 演示NullPointerException

// Java程序示例:演示CopyOnWriteArrayList
// addAllAbsent()方法
  
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // 创建CopyOnWriteArrayList对象
        CopyOnWriteArrayList<Integer> ArrLis
            = new CopyOnWriteArrayList<Integer>();
  
        // 添加元素
        ArrLis.add(2);
        ArrLis.add(3);
        ArrLis.add(4);
        ArrLis.add(7);
  
        // 打印CopyOnWriteArrayList
        System.out.println("CopyOnWriteArrayList: "
                           + ArrLis);
  
        // 创建一个空的Integer ArrayList
        ArrayList<Integer> arr = null;
  
        // 初始列表
        System.out.println("要添加的集合:" + arr);
  
        try {
            // 使用addAllAbsent()方法将列表arr添加到列表ArrLis中
            System.out.println("\n尝试添加空集合\n");
            ArrLis.addAllAbsent(arr);
        }
        catch (Exception e) {
            System.out.println(e);
        }
    }
}
CopyOnWriteArrayList: [2, 3, 4, 7]
要添加的集合:null

尝试添加空集合

java.lang.NullPointerException

参考: https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/CopyOnWriteArrayList.html#addAllAbsent-java.util.Collection-

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程