--- jsr166/src/main/java/util/Queue.java 2003/09/12 15:38:26 1.17
+++ jsr166/src/main/java/util/Queue.java 2005/05/02 17:34:02 1.28
@@ -1,15 +1,46 @@
/*
* Written by Doug Lea with assistance from members of JCP JSR-166
- * Expert Group and released to the public domain. Use, modify, and
- * redistribute this code in any way without acknowledgement.
+ * Expert Group and released to the public domain, as explained at
+ * http://creativecommons.org/licenses/publicdomain
*/
package java.util;
/**
* A collection designed for holding elements prior to processing.
- * Besides basic {@link java.util.Collection Collection} operations, queues provide
- * additional insertion, extraction, and inspection operations.
+ * Besides basic {@link java.util.Collection Collection} operations,
+ * queues provide additional insertion, extraction, and inspection
+ * operations. Each of these methods exists in two forms: one throws
+ * an exception if the operation fails, the other returns a special
+ * value (either null or false, depending on the
+ * operation). The latter form of the insert operation is designed
+ * specifically for use with capacity-restricted Queue
+ * implementations; in most implementations, insert operations cannot
+ * fail.
+ *
+ *
+ *
+ *
+ * |
+ * Throws exception |
+ * Returns special value |
+ *
+ *
+ * Insert |
+ * {@link #add add(e)} |
+ * {@link #offer offer(e)} |
+ *
+ *
+ * Remove |
+ * {@link #remove remove()} |
+ * {@link #poll poll()} |
+ *
+ *
+ * Examine |
+ * {@link #element element()} |
+ * {@link #peek peek()} |
+ *
+ *
*
* Queues typically, but do not necessarily, order elements in a
* FIFO (first-in-first-out) manner. Among the exceptions are
@@ -79,24 +110,26 @@ package java.util;
* @see java.util.concurrent.PriorityBlockingQueue
* @since 1.5
* @author Doug Lea
+ * @param the type of elements held in this collection
*/
public interface Queue extends Collection {
/**
- * Inserts the specified element to this queue, if possible. When
+ * Inserts the specified element into this queue, if possible. When
* using queues that may impose insertion restrictions (for
* example capacity bounds), method offer is generally
* preferable to method {@link Collection#add}, which can fail to
* insert an element only by throwing an exception.
*
- * @param o the element to insert.
+ * @param e the element to insert.
* @return true if it was possible to add the element to
* this queue, else false
*/
- boolean offer(E o);
+ boolean offer(E e);
/**
- * Retrieves and removes the head of this queue, if it is available.
+ * Retrieves and removes the head of this queue, or null
+ * if this queue is empty.
*
* @return the head of this queue, or null if this
* queue is empty.
@@ -104,10 +137,9 @@ public interface Queue extends Collec
E poll();
/**
- * Retrieves and removes the head of this queue.
- * This method differs
- * from the poll method in that it throws an exception if this
- * queue is empty.
+ * Retrieves and removes the head of this queue. This method
+ * differs from the {@link #poll} method only in that it throws an
+ * exception if this queue is empty.
*
* @return the head of this queue.
* @throws NoSuchElementException if this queue is empty.
@@ -115,18 +147,17 @@ public interface Queue extends Collec
E remove();
/**
- * Retrieves, but does not remove, the head of this queue.
- * This method differs from the poll
- * method only in that this method does not remove the head element from
- * this queue.
+ * Retrieves, but does not remove, the head of this queue,
+ * returning null if this queue is empty.
*
- * @return the head of this queue, or null if this queue is empty.
+ * @return the head of this queue, or null if this queue
+ * is empty.
*/
E peek();
/**
* Retrieves, but does not remove, the head of this queue. This method
- * differs from the peek method only in that it throws an
+ * differs from the {@link #peek} method only in that it throws an
* exception if this queue is empty.
*
* @return the head of this queue.