public class DelayQueue<E extends Delayed>
  Comment     Returned-by     Constructor-argument     Method-argument     Field-type     Type-bound     Links  

An unbounded blocking queue of Delayed elements, in which an element can only be taken when its delay has expired. The head of the queue is that Delayed element whose delay expired furthest in the past. If no delay has expired there is no head and poll will return null. Expiration occurs when an element's getDelay(TimeUnit.NANOSECONDS) method returns a value less than or equal to zero. Even though unexpired elements cannot be removed using take or poll, they are otherwise treated as normal elements. For example, the size method returns the count of both expired and unexpired elements. This queue does not permit null elements.

This class and its iterator implement all of the optional methods of the Collection and Iterator interfaces. The Iterator provided in method iterator() is not guaranteed to traverse the elements of the DelayQueue in any particular order.

This class is a member of the Java Collections Framework.

extends AbstractQueue<E> implements BlockingQueue<E>

Parameters:
<E>    the type of elements held in this queue

Since:  1.5