Java中的ArrayBlockingQueuerainTo()方法

drainTo()ArrayBlockingQueue类的方法从此队列中删除所有可用的元素,并将它们添加到给定的集合中。它返回传送的元素数。

语法如下

int drainTo(Collection<? super E> c)

在此,c是集合,其中将传输此队列的元素。要使用ArrayBlockingQueue类,您需要导入以下包

import java.util.concurrent.ArrayBlockingQueue;

以下是实现drainTo()Java ArrayBlockingQueue类的方法的示例

示例

import java.util.ArrayList;
import java.util.concurrent.ArrayBlockingQueue;
public class Demo {
   public static void main(String[] args) throws InterruptedException {
      ArrayBlockingQueue<Integer> q = new ArrayBlockingQueue<Integer>(10);
      q.add(200);
      q.add(310);
      q.add(400);
      q.add(450);
      q.add(500);
      q.add(550);
      q.add(700);
      System.out.println("ArrayBlockingQueue = " + q);
      ArrayList arrList = new ArrayList();
      q.drainTo(arrList);
      System.out.println("Updated ArrayBlockingQueue = " + q);
      System.out.println("Our collection = " + arrList);
   }
}

输出结果

ArrayBlockingQueue = [200, 310, 400, 450, 500, 550, 700]
After drainTo Operation
Updated ArrayBlockingQueue = []
Our collection = [200, 310, 400, 450, 500, 550, 700]