Uses of Interface java.util.Queue (Java Platform SE 8 )
Date: 2017-01-22

## Uses of Interface
java.util.Queue

- Packages that use Queue
  Package | Description
  --- | ---
  java.util | Contains the collections framework, legacy collection classes, event model, date and time facilities, internationalization, and miscellaneous utility classes (a string tokenizer, a random-number generator, and a bit array).
  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 and 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 and 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 and 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 and 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 and 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 and 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.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2017, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.