📜  Java中的 ConcurrentLinkedQueue addAll() 方法

📅  最后修改于: 2022-05-13 01:55:41.906000             🧑  作者: Mango

Java中的 ConcurrentLinkedQueue addAll() 方法

ConcurrentLinkedQueue 的addAll()方法用于在ConcurrentLinkedQueue的末尾插入作为参数传递给此方法的 Collection 的所有元素。元素的插入与集合迭代器返回的顺序相同。

句法:

public boolean addAll(Collection c)

参数:此方法接受一个参数c ,该参数表示需要将其元素附加到此 ConcurrentLinkedQueue 末尾的集合。

返回:如果执行了至少一个插入操作,则此方法返回true

异常:此方法抛出两个不同的异常:

  • NullPointerException – 如果传递的集合或其任何元素为空。
  • IllegalArgumentException – 如果传递的集合是这个队列本身。

下面的程序说明了 ConcurrentLinkedQueue 的 addAll() 方法:

示例 1:尝试将数字列表添加到 ConcurrentLinkedQueue。

// Java Program Demonstrate addAll()
// method of ConcurrentLinkedQueue
  
import java.util.concurrent.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ConcurrentLinkedQueue
        ConcurrentLinkedQueue
            queue = new ConcurrentLinkedQueue();
  
        // Add Numbers to queue
        queue.add(4353);
  
        // create a ArrayList of Numbers
        ArrayList arraylist = new ArrayList();
  
        // add some numbers to ArrayList
        arraylist.add(377139);
        arraylist.add(624378);
        arraylist.add(654793);
        arraylist.add(764764);
        arraylist.add(838494);
        arraylist.add(632845);
  
        // Displaying the existing ConcurrentLinkedQueue
        System.out.println("ConcurrentLinkedQueue: " + queue);
  
        // Displaying the existing Collection
        System.out.println("Collection to be added: " + arraylist);
  
        // apply addAll() method and passed the arraylist as parameter
        boolean response = queue.addAll(arraylist);
  
        // Displaying the existing ConcurrentLinkedQueue
        System.out.println("Collection added: " + response);
  
        // Displaying the existing ConcurrentLinkedQueue
        System.out.println("ConcurrentLinkedQueue: " + queue);
    }
}
输出:
ConcurrentLinkedQueue: [4353]
Collection to be added: [377139, 624378, 654793, 764764, 838494, 632845]
Collection added: true
ConcurrentLinkedQueue: [4353, 377139, 624378, 654793, 764764, 838494, 632845]

示例 2:尝试将字符串列表添加到 ConcurrentLinkedQueue。

// Java Program Demonstrate addAll()
// method of ConcurrentLinkedQueue
  
import java.util.concurrent.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ConcurrentLinkedQueue
        ConcurrentLinkedQueue
            queue = new ConcurrentLinkedQueue();
  
        // Add String to queue
        queue.add("Aman");
        queue.add("Amar");
  
        // create a ArrayList of Numbers
        ArrayList arraylist = new ArrayList();
  
        // add some numbers to ArrayList
  
        arraylist.add("Sanjeet");
        arraylist.add("Rabi");
        arraylist.add("Debasis");
        arraylist.add("Raunak");
        arraylist.add("Mahesh");
  
        // Displaying the existing ConcurrentLinkedQueue
        System.out.println("ConcurrentLinkedQueue: " + queue);
  
        // Displaying the existing Collection
        System.out.println("Collection to be added: " + arraylist);
  
        // apply addAll() method and passed the arraylist as parameter
        boolean response = queue.addAll(arraylist);
  
        // Displaying the existing ConcurrentLinkedQueue
        System.out.println("Collection added: " + response);
  
        // Displaying the existing ConcurrentLinkedQueue
        System.out.println("ConcurrentLinkedQueue: " + queue);
    }
}
输出:
ConcurrentLinkedQueue: [Aman, Amar]
Collection to be added: [Sanjeet, Rabi, Debasis, Raunak, Mahesh]
Collection added: true
ConcurrentLinkedQueue: [Aman, Amar, Sanjeet, Rabi, Debasis, Raunak, Mahesh]

示例 3:显示NullPointerException

// Java Program Demonstrate addAll()
// method of ConcurrentLinkedQueue
  
import java.util.concurrent.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ConcurrentLinkedQueue
        ConcurrentLinkedQueue
            queue = new ConcurrentLinkedQueue();
  
        // Add String to queue
        queue.add("Aman");
        queue.add("Amar");
  
        // create a ArrayList which is equal to null
        ArrayList arraylist = null;
  
        // Displaying the existing ConcurrentLinkedQueue
        System.out.println("ConcurrentLinkedQueue: " + queue);
  
        // Displaying the existing Collection
        System.out.println("Collection to be added: " + arraylist);
  
        try {
            // apply addAll() method and pass the arraylist as parameter
            // since the arraylist is null, exception will be thrown
            boolean response = queue.addAll(arraylist);
        }
        catch (NullPointerException e) {
            System.out.println("Exception thrown while adding null: " + e);
        }
    }
}
输出:
ConcurrentLinkedQueue: [Aman, Amar]
Collection to be added: null
Exception thrown while adding null: java.lang.NullPointerException

示例 4:显示 IllegalArgumentException

// Java Program Demonstrate addAll()
// method of ConcurrentLinkedQueue
  
import java.util.concurrent.*;
import java.util.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an ConcurrentLinkedQueue
        ConcurrentLinkedQueue
            queue = new ConcurrentLinkedQueue();
  
        // Add String to queue
        queue.add("Aman");
        queue.add("Amar");
  
        // Displaying the existing ConcurrentLinkedQueue
        System.out.println("ConcurrentLinkedQueue: " + queue);
  
        try {
            // apply addAll() method and passed the queue as parameter
            boolean response = queue.addAll(queue);
        }
        catch (IllegalArgumentException e) {
            System.out.println("Exception thrown while adding queue"
                               + " to itself when collection is required: " + e);
        }
    }
}
输出:
ConcurrentLinkedQueue: [Aman, Amar]
Exception thrown 
 while adding queue to itself
 when collection is required: java.lang.IllegalArgumentException

参考: https: Java/util/concurrent/ConcurrentLinkedQueue.html#addAll-java.util.Collection-