DelayQueue toArray() method in Java with Examples
Last Updated :
07 May, 2021
The toArray() method of DelayQueue is used to return an array containing all the elements in DelayQueue. There elements are not in any specific order in the array.
Syntax:
public Object[] toArray ()
or
public T[] toArray (T[] a)
Parameters: This method either accepts no parameters or it takes an array T[] a as parameter which is the array into which the elements of the list are to be stored, if it is big enough; otherwise, a new array of the same runtime type is allocated for this purpose.
Return Value: The function returns an array containing all the elements in this list.
Exception: The first overload of this method throws no exceptions. However, the second overload throws following exceptions:
- ArrayStoreException: if the runtime type of the specified array is not a supertype of the runtime type of every element in this queue.
- NullPointerException: if the specified array is null.
Below programs illustrate the DelayQueue.toArray() method:
Program 1:
Java
import java.util.concurrent.*;
import java.util.*;
class DelayObject implements Delayed {
private String name;
private long time;
public DelayObject(String name, long delayTime)
{
this .name = name;
this .time = System.currentTimeMillis()
+ delayTime;
}
@Override
public long getDelay(TimeUnit unit)
{
long diff = time - System.currentTimeMillis();
return unit.convert(diff, TimeUnit.MILLISECONDS);
}
@Override
public int compareTo(Delayed obj)
{
if ( this .time < ((DelayObject)obj).time) {
return - 1 ;
}
if ( this .time > ((DelayObject)obj).time) {
return 1 ;
}
return 0 ;
}
@Override
public String toString()
{
return "\n{"
+ " " + name + ", time=" + time + "}" ;
}
}
public class GFG {
public static void main(String[] args) throws InterruptedException
{
BlockingQueue<DelayObject> DQ
= new DelayQueue<DelayObject>();
DQ.add( new DelayObject( "A" , 1 ));
DQ.add( new DelayObject( "B" , 2 ));
DQ.add( new DelayObject( "C" , 3 ));
DQ.add( new DelayObject( "D" , 4 ));
System.out.println( "DelayQueue: "
+ DQ);
Object[] arr = DQ.toArray();
System.out.println( "Elements of DelayQueue"
+ " as Array: "
+ Arrays.toString(arr));
}
}
|
Output:
DelayQueue: [
{ A, time=1546842694862},
{ B, time=1546842694863},
{ C, time=1546842694864},
{ D, time=1546842694865}]
Elements of DelayQueue as Array: [
{ A, time=1546842694862},
{ B, time=1546842694863},
{ C, time=1546842694864},
{ D, time=1546842694865}]
Program 2:
Java
import java.util.concurrent.*;
import java.util.*;
class DelayObject implements Delayed {
private String name;
private long time;
public DelayObject(String name, long delayTime)
{
this .name = name;
this .time = System.currentTimeMillis()
+ delayTime;
}
@Override
public long getDelay(TimeUnit unit)
{
long diff = time - System.currentTimeMillis();
return unit.convert(diff, TimeUnit.MILLISECONDS);
}
@Override
public int compareTo(Delayed obj)
{
if ( this .time < ((DelayObject)obj).time) {
return - 1 ;
}
if ( this .time > ((DelayObject)obj).time) {
return 1 ;
}
return 0 ;
}
@Override
public String toString()
{
return "\n{"
+ " " + name + ", time=" + time + "}" ;
}
}
public class GFG {
public static void main(String[] args) throws InterruptedException
{
BlockingQueue<DelayObject> DQ
= new DelayQueue<DelayObject>();
DQ.add( new DelayObject( "A" , 1 ));
DQ.add( new DelayObject( "B" , 2 ));
DQ.add( new DelayObject( "C" , 3 ));
DQ.add( new DelayObject( "D" , 4 ));
System.out.println( "DelayQueue: "
+ DQ);
Delayed arr[] = new Delayed[DQ.size()];
arr = DQ.toArray(arr);
System.out.println( "Elements of ArrayList"
+ " as Array: "
+ Arrays.toString(arr));
}
}
|
Output:
DelayQueue: [
{ A, time=1546842699503},
{ B, time=1546842699504},
{ C, time=1546842699505},
{ D, time=1546842699506}]
Elements of ArrayList as Array: [
{ A, time=1546842699503},
{ B, time=1546842699504},
{ C, time=1546842699505},
{ D, time=1546842699506}]
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...