Uses of Interface java.util.Deque (Java SE 12 & JDK 12 )

## Uses of Interface
java.util.Deque

- Packages that use Deque
  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 Deque in java.util

    Classes in java.util that implement Deque
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ArrayDeque<E>` | Resizable-array implementation of the `Deque` interface.
    `class` | `LinkedList<E>` | Doubly-linked list implementation of the `List` and `Deque` interfaces.

    Methods in java.util with parameters of type Deque
    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`.

  - ### Uses of Deque in java.util.concurrent

    Subinterfaces of Deque 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.

    Classes in java.util.concurrent that implement Deque
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `ConcurrentLinkedDeque<E>` | An unbounded concurrent deque based on linked nodes.
    `class` | `LinkedBlockingDeque<E>` | An optionally-bounded blocking deque based on linked nodes.