Java中ConcurrentLinkedDeque addAll() 方法及示例

Java中ConcurrentLinkedDeque addAll() 方法及示例

addAll(Collection col) 是一个传入参数为col的方法,其中col是元素的集合(List, ArrayList, LinkedList等等)。整个集合都会被添加到Dequeue的尾部。如果集合附加到Deque中,该方法会返回true,就像add()方法一样。

语法:

public boolean addAll(Collection c)

参数: 此函数接受一个参数col,即要添加的元素集合。

返回值: 该方法返回一个布尔值,表示集合是否附加到Deque中。

异常: 此方法接受两种异常:

  • NullPointerException: 如果集合中的任何元素为空或集合为空,则抛出异常。
  • IllegalArgumentException: 如果传递的集合是现有deque本身,则抛出异常。

下面的示例说明了addAll()方法:

示例1:向ConcurrentLinkedDeque的第一个集合添加数字集合

// Java program to illustrate addAll() method
 
import java.util.concurrent.ConcurrentLinkedDeque;
 
public class Example1 {
    public static void main(String[] args)
    {
 
        // create object of ConcurrentLinkedDeque
        ConcurrentLinkedDeque<Integer> ld1
            = new ConcurrentLinkedDeque<Integer>();
 
        // Add elements
        ld1.add(1);
        ld1.add(2);
        ld1.add(3);
        ld1.add(4);
 
        // print ld1
        System.out.println("LD1: " + ld1);
 
        // create object of ConcurrentLinkedDeque
        ConcurrentLinkedDeque<Integer> ld2
            = new ConcurrentLinkedDeque<Integer>();
 
        ld2.add(8);
        ld2.add(1);
        ld2.add(3);
        ld2.add(5);
 
        // print ld2
        System.out.println("LD2: " + ld2);
 
        // Adding elements of ld2 to ld1 at its end.
        ld1.addAll(ld2);
 
        System.out.println("After adding the ld2 to ld1: "
                           + ld1);
    }
}
LD1: [1, 2, 3, 4]
LD2: [8, 1, 3, 5]
将ld2添加到ld1中后: [1, 2, 3, 4, 8, 1, 3, 5]

示例2:展示IllegalArgumentException

// Java program to illustrate addAll() method
 
import java.util.concurrent.ConcurrentLinkedDeque;
 
public class Example2 {
    public static void main(String[] args)
    {
        // create object of ConcurrentLinkedDeque
        ConcurrentLinkedDeque<String> ld1
            = new ConcurrentLinkedDeque<String>();
 
        // Add elements
        ld1.add("John");
        ld1.add("Johnathan");
        ld1.add("Jones");
        ld1.add("James");
 
        // print ld1
        System.out.println("LD1: " + ld1);
 
        try {
            ld1.addAll(ld1);
        }
        catch (IllegalArgumentException e) {
            System.out.println("Exception thrown while "
                               + "adding deque to "
                               + "itself is: "
                               + e);
        }
    }
}
LD1: [John, Johnathan, Jones, James]
尝试将队列本身添加到它本身时抛出异常: java.lang.IllegalArgumentException

示例3:展示NullPointerException

// Java程序演示addAll()方法
  
import java.util.concurrent.ConcurrentLinkedDeque;
  
public class Example3 {
    public static void main(String[] args)
    {
  
        // 创建ConcurrentLinkedDeque对象
        ConcurrentLinkedDeque<String> ld1
            = new ConcurrentLinkedDeque<String>();
  
        // 添加元素
        ld1.add("John");
        ld1.add("Johnathan");
        ld1.add("Jones");
        ld1.add("James");
  
        // 打印ld1
        System.out.println("LD1: " + ld1);
  
        // 创建ConcurrentLinkedDeque对象
        ConcurrentLinkedDeque<String> ld2 = null;
  
        // 打印ld2
        System.out.println("LD2: " + ld2);
  
        try {
  
            System.out.println("添加ld2到ld1之后: ");
            ld2.addAll(ld1);
        }
        catch (NullPointerException e) {
            System.out.println(e);
        }
    }
}
LD1: [John, Johnathan, Jones, James]
LD2: null
添加ld2到ld1之后:
java.lang.NullPointerException

引用: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ConcurrentLinkedDeque.html

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程