Java中的ConcurrentLinkedQueue addAll()方法

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

null

语法:

public boolean addAll(Collection<? extends E> c)

参数: 此方法接受一个参数 C 表示其元素需要追加到此ConcurrentLinkedQueue末尾的集合。

返回: 此方法返回 符合事实的 如果至少执行了一个插入操作。

例外情况: 此方法引发两个不同的异常:

  • 空指针异常 –如果传递的集合或其任何元素为空。
  • 非法数据异常 –如果传递的集合是该队列本身。

下面的程序演示了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<Integer>
queue = new ConcurrentLinkedQueue<Integer>();
// Add Numbers to queue
queue.add( 4353 );
// create a ArrayList of Numbers
ArrayList<Integer> arraylist = new ArrayList<Integer>();
// 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<String>
queue = new ConcurrentLinkedQueue<String>();
// Add String to queue
queue.add( "Aman" );
queue.add( "Amar" );
// create a ArrayList of Numbers
ArrayList<String> arraylist = new ArrayList<String>();
// 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: 显示 空指针异常

// 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<String>
queue = new ConcurrentLinkedQueue<String>();
// Add String to queue
queue.add( "Aman" );
queue.add( "Amar" );
// create a ArrayList which is equal to null
ArrayList<String> 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<String>
queue = new ConcurrentLinkedQueue<String>();
// 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://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html#addAll-爪哇。util。收藏-

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享