java.util.concurrent
Class DelayQueue<E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >

java.lang.Object sample code for java.lang.Object definition code for java.lang.Object 
  extended by java.util.AbstractCollection sample code for java.util.AbstractCollection definition code for java.util.AbstractCollection <E>
      extended by java.util.AbstractQueue sample code for java.util.AbstractQueue definition code for java.util.AbstractQueue <E>
          extended by java.util.concurrent.DelayQueue<E>
Type Parameters:
E - the type of elements held in this collection
All Implemented Interfaces:
Iterable sample code for java.lang.Iterable definition code for java.lang.Iterable <E>, Collection sample code for java.util.Collection definition code for java.util.Collection <E>, BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E>, Queue sample code for java.util.Queue definition code for java.util.Queue <E>

public class DelayQueue<E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
extends AbstractQueue sample code for java.util.AbstractQueue definition code for java.util.AbstractQueue <E>
implements BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E>

An unbounded blocking queue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue 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. This queue does not permit null elements.

This class and its iterator implement all of the optional methods of the Collection sample code for java.util.Collection definition code for java.util.Collection and Iterator sample code for java.util.Iterator definition code for java.util.Iterator interfaces.

This class is a member of the Java Collections Framework.

Since:
1.5

Constructor Summary
DelayQueue sample code for java.util.concurrent.DelayQueue.DelayQueue() definition code for java.util.concurrent.DelayQueue.DelayQueue() ()
          Creates a new DelayQueue that is initially empty.
DelayQueue sample code for java.util.concurrent.DelayQueue.DelayQueue(java.util.Collection) definition code for java.util.concurrent.DelayQueue.DelayQueue(java.util.Collection) (Collection sample code for java.util.Collection definition code for java.util.Collection <? extends E> c)
          Creates a DelayQueue initially containing the elements of the given collection of Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed instances.
 
Method Summary
 boolean add sample code for java.util.concurrent.DelayQueue.add(E) definition code for java.util.concurrent.DelayQueue.add(E) (E o)
          Adds the specified element to this queue.
 void clear sample code for java.util.concurrent.DelayQueue.clear() definition code for java.util.concurrent.DelayQueue.clear() ()
          Atomically removes all of the elements from this delay queue.
 int drainTo sample code for java.util.concurrent.DelayQueue.drainTo(java.util.Collection) definition code for java.util.concurrent.DelayQueue.drainTo(java.util.Collection) (Collection sample code for java.util.Collection definition code for java.util.Collection <? super E> c)
          Removes all available elements from this queue and adds them into the given collection.
 int drainTo sample code for java.util.concurrent.DelayQueue.drainTo(java.util.Collection, int) definition code for java.util.concurrent.DelayQueue.drainTo(java.util.Collection, int) (Collection sample code for java.util.Collection definition code for java.util.Collection <? super E> c, int maxElements)
          Removes at most the given number of available elements from this queue and adds them into the given collection.
 Iterator sample code for java.util.Iterator definition code for java.util.Iterator <E> iterator sample code for java.util.concurrent.DelayQueue.iterator() definition code for java.util.concurrent.DelayQueue.iterator() ()
          Returns an iterator over the elements in this queue.
 boolean offer sample code for java.util.concurrent.DelayQueue.offer(E) definition code for java.util.concurrent.DelayQueue.offer(E) (E o)
          Inserts the specified element into this delay queue.
 boolean offer sample code for java.util.concurrent.DelayQueue.offer(E, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.DelayQueue.offer(E, long, java.util.concurrent.TimeUnit) (E o, long timeout, TimeUnit sample code for java.util.concurrent.TimeUnit definition code for java.util.concurrent.TimeUnit  unit)
          Inserts the specified element into this delay queue.
 E peek sample code for java.util.concurrent.DelayQueue.peek() definition code for java.util.concurrent.DelayQueue.peek() ()
          Retrieves, but does not remove, the head of this queue, returning null if this queue has no elements with an unexpired delay.
 E poll sample code for java.util.concurrent.DelayQueue.poll() definition code for java.util.concurrent.DelayQueue.poll() ()
          Retrieves and removes the head of this queue, or null if this queue has no elements with an unexpired delay.
 E poll sample code for java.util.concurrent.DelayQueue.poll(long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.DelayQueue.poll(long, java.util.concurrent.TimeUnit) (long timeout, TimeUnit sample code for java.util.concurrent.TimeUnit definition code for java.util.concurrent.TimeUnit  unit)
          Retrieves and removes the head of this queue, waiting if necessary up to the specified wait time if no elements with an unexpired delay are present on this queue.
 void put sample code for java.util.concurrent.DelayQueue.put(E) definition code for java.util.concurrent.DelayQueue.put(E) (E o)
          Adds the specified element to this delay queue.
 int remainingCapacity sample code for java.util.concurrent.DelayQueue.remainingCapacity() definition code for java.util.concurrent.DelayQueue.remainingCapacity() ()
          Always returns Integer.MAX_VALUE because a DelayQueue is not capacity constrained.
 boolean remove sample code for java.util.concurrent.DelayQueue.remove(java.lang.Object) definition code for java.util.concurrent.DelayQueue.remove(java.lang.Object) (Object sample code for java.lang.Object definition code for java.lang.Object  o)
          Removes a single instance of the specified element from this queue, if it is present.
 int size sample code for java.util.concurrent.DelayQueue.size() definition code for java.util.concurrent.DelayQueue.size() ()
          Returns the number of elements in this collection.
 E take sample code for java.util.concurrent.DelayQueue.take() definition code for java.util.concurrent.DelayQueue.take() ()
          Retrieves and removes the head of this queue, waiting if no elements with an unexpired delay are present on this queue.
 Object sample code for java.lang.Object definition code for java.lang.Object [] toArray sample code for java.util.concurrent.DelayQueue.toArray() definition code for java.util.concurrent.DelayQueue.toArray() ()
          Returns an array containing all of the elements in this collection.
<T> T[]
toArray sample code for java.util.concurrent.DelayQueue.toArray(T[]) definition code for java.util.concurrent.DelayQueue.toArray(T[]) (T[] array)
          Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array.
 
Methods inherited from class java.util.AbstractQueue sample code for java.util.AbstractQueue definition code for java.util.AbstractQueue
addAll sample code for java.util.AbstractQueue.addAll(java.util.Collection) definition code for java.util.AbstractQueue.addAll(java.util.Collection) , element sample code for java.util.AbstractQueue.element() definition code for java.util.AbstractQueue.element() , remove sample code for java.util.AbstractQueue.remove() definition code for java.util.AbstractQueue.remove()
 
Methods inherited from class java.util.AbstractCollection sample code for java.util.AbstractCollection definition code for java.util.AbstractCollection
contains sample code for java.util.AbstractCollection.contains(java.lang.Object) definition code for java.util.AbstractCollection.contains(java.lang.Object) , containsAll sample code for java.util.AbstractCollection.containsAll(java.util.Collection) definition code for java.util.AbstractCollection.containsAll(java.util.Collection) , isEmpty sample code for java.util.AbstractCollection.isEmpty() definition code for java.util.AbstractCollection.isEmpty() , removeAll sample code for java.util.AbstractCollection.removeAll(java.util.Collection) definition code for java.util.AbstractCollection.removeAll(java.util.Collection) , retainAll sample code for java.util.AbstractCollection.retainAll(java.util.Collection) definition code for java.util.AbstractCollection.retainAll(java.util.Collection) , toString sample code for java.util.AbstractCollection.toString() definition code for java.util.AbstractCollection.toString()
 
Methods inherited from class java.lang.Object sample code for java.lang.Object definition code for java.lang.Object
clone sample code for java.lang.Object.clone() definition code for java.lang.Object.clone() , equals sample code for java.lang.Object.equals(java.lang.Object) definition code for java.lang.Object.equals(java.lang.Object) , finalize sample code for java.lang.Object.finalize() definition code for java.lang.Object.finalize() , getClass sample code for java.lang.Object.getClass() definition code for java.lang.Object.getClass() , hashCode sample code for java.lang.Object.hashCode() definition code for java.lang.Object.hashCode() , notify sample code for java.lang.Object.notify() definition code for java.lang.Object.notify() , notifyAll sample code for java.lang.Object.notifyAll() definition code for java.lang.Object.notifyAll() , wait sample code for java.lang.Object.wait() definition code for java.lang.Object.wait() , wait sample code for java.lang.Object.wait(long) definition code for java.lang.Object.wait(long) , wait sample code for java.lang.Object.wait(long, int) definition code for java.lang.Object.wait(long, int)
 
Methods inherited from interface java.util.Queue sample code for java.util.Queue definition code for java.util.Queue
element sample code for java.util.Queue.element() definition code for java.util.Queue.element() , remove sample code for java.util.Queue.remove() definition code for java.util.Queue.remove()
 
Methods inherited from interface java.util.Collection sample code for java.util.Collection definition code for java.util.Collection
addAll sample code for java.util.Collection.addAll(java.util.Collection) definition code for java.util.Collection.addAll(java.util.Collection) , contains sample code for java.util.Collection.contains(java.lang.Object) definition code for java.util.Collection.contains(java.lang.Object) , containsAll sample code for java.util.Collection.containsAll(java.util.Collection) definition code for java.util.Collection.containsAll(java.util.Collection) , equals sample code for java.util.Collection.equals(java.lang.Object) definition code for java.util.Collection.equals(java.lang.Object) , hashCode sample code for java.util.Collection.hashCode() definition code for java.util.Collection.hashCode() , isEmpty sample code for java.util.Collection.isEmpty() definition code for java.util.Collection.isEmpty() , removeAll sample code for java.util.Collection.removeAll(java.util.Collection) definition code for java.util.Collection.removeAll(java.util.Collection) , retainAll sample code for java.util.Collection.retainAll(java.util.Collection) definition code for java.util.Collection.retainAll(java.util.Collection)
 

Constructor Detail

DelayQueue sample code for java.util.concurrent.DelayQueue() definition code for java.util.concurrent.DelayQueue()

public DelayQueue()
Creates a new DelayQueue that is initially empty.


DelayQueue sample code for java.util.concurrent.DelayQueue(java.util.Collection<? extends E>) definition code for java.util.concurrent.DelayQueue(java.util.Collection<? extends E>)

public DelayQueue(Collection sample code for java.util.Collection definition code for java.util.Collection <? extends E> c)
Creates a DelayQueue initially containing the elements of the given collection of Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed instances.

Parameters:
c - the collection
Throws:
NullPointerException sample code for java.lang.NullPointerException definition code for java.lang.NullPointerException - if c or any element within it is null
Method Detail

offer sample code for java.util.concurrent.DelayQueue.offer(E) definition code for java.util.concurrent.DelayQueue.offer(E)

public boolean offer(E o)
Inserts the specified element into this delay queue.

Specified by:
offer sample code for java.util.concurrent.BlockingQueue.offer(E) definition code for java.util.concurrent.BlockingQueue.offer(E) in interface BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Specified by:
offer sample code for java.util.Queue.offer(E) definition code for java.util.Queue.offer(E) in interface Queue sample code for java.util.Queue definition code for java.util.Queue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Parameters:
o - the element to add
Returns:
true
Throws:
NullPointerException sample code for java.lang.NullPointerException definition code for java.lang.NullPointerException - if the specified element is null.

put sample code for java.util.concurrent.DelayQueue.put(E) definition code for java.util.concurrent.DelayQueue.put(E)

public void put(E o)
Adds the specified element to this delay queue. As the queue is unbounded this method will never block.

Specified by:
put sample code for java.util.concurrent.BlockingQueue.put(E) definition code for java.util.concurrent.BlockingQueue.put(E) in interface BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Parameters:
o - the element to add
Throws:
NullPointerException sample code for java.lang.NullPointerException definition code for java.lang.NullPointerException - if the specified element is null.

offer sample code for java.util.concurrent.DelayQueue.offer(E, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.DelayQueue.offer(E, long, java.util.concurrent.TimeUnit)

public boolean offer(E o,
                     long timeout,
                     TimeUnit sample code for java.util.concurrent.TimeUnit definition code for java.util.concurrent.TimeUnit  unit)
Inserts the specified element into this delay queue. As the queue is unbounded this method will never block.

Specified by:
offer sample code for java.util.concurrent.BlockingQueue.offer(E, long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.BlockingQueue.offer(E, long, java.util.concurrent.TimeUnit) in interface BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Parameters:
o - the element to add
timeout - This parameter is ignored as the method never blocks
unit - This parameter is ignored as the method never blocks
Returns:
true
Throws:
NullPointerException sample code for java.lang.NullPointerException definition code for java.lang.NullPointerException - if the specified element is null.

add sample code for java.util.concurrent.DelayQueue.add(E) definition code for java.util.concurrent.DelayQueue.add(E)

public boolean add(E o)
Adds the specified element to this queue.

Specified by:
add sample code for java.util.Collection.add(E) definition code for java.util.Collection.add(E) in interface Collection sample code for java.util.Collection definition code for java.util.Collection <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Specified by:
add sample code for java.util.concurrent.BlockingQueue.add(E) definition code for java.util.concurrent.BlockingQueue.add(E) in interface BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Overrides:
add sample code for java.util.AbstractQueue.add(E) definition code for java.util.AbstractQueue.add(E) in class AbstractQueue sample code for java.util.AbstractQueue definition code for java.util.AbstractQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Parameters:
o - the element to add
Returns:
true (as per the general contract of Collection.add).
Throws:
NullPointerException sample code for java.lang.NullPointerException definition code for java.lang.NullPointerException - if the specified element is null.

take sample code for java.util.concurrent.DelayQueue.take() definition code for java.util.concurrent.DelayQueue.take()

public E take()
                       throws InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException 
Retrieves and removes the head of this queue, waiting if no elements with an unexpired delay are present on this queue.

Specified by:
take sample code for java.util.concurrent.BlockingQueue.take() definition code for java.util.concurrent.BlockingQueue.take() in interface BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Returns:
the head of this queue
Throws:
InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException - if interrupted while waiting.

poll sample code for java.util.concurrent.DelayQueue.poll(long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.DelayQueue.poll(long, java.util.concurrent.TimeUnit)

public E poll(long timeout,
              TimeUnit sample code for java.util.concurrent.TimeUnit definition code for java.util.concurrent.TimeUnit  unit)
                       throws InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException 
Retrieves and removes the head of this queue, waiting if necessary up to the specified wait time if no elements with an unexpired delay are present on this queue.

Specified by:
poll sample code for java.util.concurrent.BlockingQueue.poll(long, java.util.concurrent.TimeUnit) definition code for java.util.concurrent.BlockingQueue.poll(long, java.util.concurrent.TimeUnit) in interface BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Parameters:
timeout - how long to wait before giving up, in units of unit
unit - a TimeUnit determining how to interpret the timeout parameter
Returns:
the head of this queue, or null if the specified waiting time elapses before an element with an unexpired delay is present.
Throws:
InterruptedException sample code for java.lang.InterruptedException definition code for java.lang.InterruptedException - if interrupted while waiting.

poll sample code for java.util.concurrent.DelayQueue.poll() definition code for java.util.concurrent.DelayQueue.poll()

public E poll()
Retrieves and removes the head of this queue, or null if this queue has no elements with an unexpired delay.

Specified by:
poll sample code for java.util.Queue.poll() definition code for java.util.Queue.poll() in interface Queue sample code for java.util.Queue definition code for java.util.Queue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Returns:
the head of this queue, or null if this queue has no elements with an unexpired delay.

peek sample code for java.util.concurrent.DelayQueue.peek() definition code for java.util.concurrent.DelayQueue.peek()

public E peek()
Retrieves, but does not remove, the head of this queue, returning null if this queue has no elements with an unexpired delay.

Specified by:
peek sample code for java.util.Queue.peek() definition code for java.util.Queue.peek() in interface Queue sample code for java.util.Queue definition code for java.util.Queue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Returns:
the head of this queue, or null if this queue has no elements with an unexpired delay.

size sample code for java.util.concurrent.DelayQueue.size() definition code for java.util.concurrent.DelayQueue.size()

public int size()
Description copied from class: AbstractCollection sample code for java.util.AbstractCollection.size() definition code for java.util.AbstractCollection.size()
Returns the number of elements in this collection. If the collection contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.

Specified by:
size sample code for java.util.Collection.size() definition code for java.util.Collection.size() in interface Collection sample code for java.util.Collection definition code for java.util.Collection <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Specified by:
size sample code for java.util.AbstractCollection.size() definition code for java.util.AbstractCollection.size() in class AbstractCollection sample code for java.util.AbstractCollection definition code for java.util.AbstractCollection <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Returns:
the number of elements in this collection.

drainTo sample code for java.util.concurrent.DelayQueue.drainTo(java.util.Collection<? super E>) definition code for java.util.concurrent.DelayQueue.drainTo(java.util.Collection<? super E>)

public int drainTo(Collection sample code for java.util.Collection definition code for java.util.Collection <? super E> c)
Description copied from interface: BlockingQueue sample code for java.util.concurrent.BlockingQueue.drainTo(java.util.Collection) definition code for java.util.concurrent.BlockingQueue.drainTo(java.util.Collection)
Removes all available elements from this queue and adds them into the given collection. This operation may be more efficient than repeatedly polling this queue. A failure encountered while attempting to add elements to collection c may result in elements being in neither, either or both collections when the associated exception is thrown. Attempts to drain a queue to itself result in IllegalArgumentException. Further, the behavior of this operation is undefined if the specified collection is modified while the operation is in progress.

Specified by:
drainTo sample code for java.util.concurrent.BlockingQueue.drainTo(java.util.Collection) definition code for java.util.concurrent.BlockingQueue.drainTo(java.util.Collection) in interface BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Parameters:
c - the collection to transfer elements into
Returns:
the number of elements transferred.

drainTo sample code for java.util.concurrent.DelayQueue.drainTo(java.util.Collection<? super E>, int) definition code for java.util.concurrent.DelayQueue.drainTo(java.util.Collection<? super E>, int)

public int drainTo(Collection sample code for java.util.Collection definition code for java.util.Collection <? super E> c,
                   int maxElements)
Description copied from interface: BlockingQueue sample code for java.util.concurrent.BlockingQueue.drainTo(java.util.Collection, int) definition code for java.util.concurrent.BlockingQueue.drainTo(java.util.Collection, int)
Removes at most the given number of available elements from this queue and adds them into the given collection. A failure encountered while attempting to add elements to collection c may result in elements being in neither, either or both collections when the associated exception is thrown. Attempts to drain a queue to itself result in IllegalArgumentException. Further, the behavior of this operation is undefined if the specified collection is modified while the operation is in progress.

Specified by:
drainTo sample code for java.util.concurrent.BlockingQueue.drainTo(java.util.Collection, int) definition code for java.util.concurrent.BlockingQueue.drainTo(java.util.Collection, int) in interface BlockingQueue sample code for java.util.concurrent.BlockingQueue definition code for java.util.concurrent.BlockingQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Parameters:
c - the collection to transfer elements into
maxElements - the maximum number of elements to transfer
Returns:
the number of elements transferred.

clear sample code for java.util.concurrent.DelayQueue.clear() definition code for java.util.concurrent.DelayQueue.clear()

public void clear()
Atomically removes all of the elements from this delay queue. The queue will be empty after this call returns.

Specified by:
clear sample code for java.util.Collection.clear() definition code for java.util.Collection.clear() in interface Collection sample code for java.util.Collection definition code for java.util.Collection <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >
Overrides:
clear sample code for java.util.AbstractQueue.clear() definition code for java.util.AbstractQueue.clear() in class AbstractQueue sample code for java.util.AbstractQueue definition code for java.util.AbstractQueue <E extends Delayed sample code for java.util.concurrent.Delayed definition code for java.util.concurrent.Delayed >