ArrayBlockingQueue drainTo() Method in Java


The drainTo() method of the ArrayBlockingQueue class removes all available elements from this queue and adds them to the given collection. It returns the number of elements transferred.

The syntax is as follows

int drainTo(Collection<? super E> c)

Here, c is the collection wherein the elements of this queue would be transferred. To work with ArrayBlockingQueue class, you need to import the following package

import java.util.concurrent.ArrayBlockingQueue;

The following is an example to implement drainTo() method of Java ArrayBlockingQueue class

Example

 Live Demo

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);
   }
}

Output

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

Updated on: 30-Jul-2019

136 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements