# Uses of Interface
java.util.Queue

Packages that use Queue
Package | Description
--- | ---
java.util | Contains the collections framework, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.
java.util.concurrent | Utility classes commonly useful in concurrent programming.

## Uses of Queue in java.util

Subinterfaces of Queue in java.util
Modifier and Type | Interface | Description
--- | --- | ---
`interface` | `Deque<E>` | A linear collection that supports element insertion and removal at both ends.

Classes in java.util that implement Queue
Modifier and Type | Class | Description
--- | --- | ---
`class` | `AbstractQueue<E>` | This class provides skeletal implementations of some `Queue` operations.
`class` | `ArrayDeque<E>` | Resizable-array implementation of the `Deque` interface.
`class` | `LinkedList<E>` | Doubly-linked list implementation of the `List` and `Deque` interfaces.
`class` | `PriorityQueue<E>` | An unbounded priority queue based on a priority heap.

Methods in java.util that return Queue
Modifier and Type | Method | Description
--- | --- | ---
`static <T> Queue<T>` | Collections.`asLifoQueue​(Deque<T> deque)` | Returns a view of a `Deque` as a Last-in-first-out (Lifo) `Queue`.
`static <E> Queue<E>` | Collections.`checkedQueue​(Queue<E> queue, Class<E> type)` | Returns a dynamically typesafe view of the specified queue.

Methods in java.util with parameters of type Queue
Modifier and Type | Method | Description
--- | --- | ---
`static <E> Queue<E>` | Collections.`checkedQueue​(Queue<E> queue, Class<E> type)` | Returns a dynamically typesafe view of the specified queue.

## Uses of Queue in java.util.concurrent

Subinterfaces of Queue in java.util.concurrent
Modifier and Type | Interface | Description
--- | --- | ---
`interface` | `BlockingDeque<E>` | A `Deque` that additionally supports blocking operations that wait for the deque to become non-empty when retrieving an element, and wait for space to become available in the deque when storing an element.
`interface` | `BlockingQueue<E>` | A `Queue` that additionally supports operations that wait for the queue to become non-empty when retrieving an element, and wait for space to become available in the queue when storing an element.
`interface` | `TransferQueue<E>` | A `BlockingQueue` in which producers may wait for consumers to receive elements.

Classes in java.util.concurrent that implement Queue
Modifier and Type | Class | Description
--- | --- | ---
`class` | `ArrayBlockingQueue<E>` | A bounded blocking queue backed by an array.
`class` | `ConcurrentLinkedDeque<E>` | An unbounded concurrent deque based on linked nodes.
`class` | `ConcurrentLinkedQueue<E>` | An unbounded thread-safe queue based on linked nodes.
`class` | `DelayQueue<E extends Delayed>` | An unbounded blocking queue of `Delayed` elements, in which an element can only be taken when its delay has expired.
`class` | `LinkedBlockingDeque<E>` | An optionally-bounded blocking deque based on linked nodes.
`class` | `LinkedBlockingQueue<E>` | An optionally-bounded blocking queue based on linked nodes.
`class` | `LinkedTransferQueue<E>` | An unbounded `TransferQueue` based on linked nodes.
`class` | `PriorityBlockingQueue<E>` | An unbounded blocking queue that uses the same ordering rules as class `PriorityQueue` and supplies blocking retrieval operations.
`class` | `SynchronousQueue<E>` | A blocking queue in which each insert operation must wait for a corresponding remove operation by another thread, and vice versa.