The Collections Framework New Types : Deque « Collections « Java Tutorial






New types in Collections Framework

  1. Deque
  2. BlockingDeque
  3. NavigableMap
  4. NavigableSet

The Deque Interface

Deque [pronounced "deck"] is short for double-ended queue.

java.util.Deque is a subinterface of Queue.

A deque is a queue that supports element insertion and removal at both ends.

You can also restrict the maximum number of elements in a Deque.

Deque can also be used as a stack.

Methods are available for adding, removing, and inspecting elements.

The ArrayDeque class is an implementation of Deque that does not impose capacity restriction.

ArrayDeque always grows as necessary to support new elements.

Using Deque as a stack

import java.util.ArrayDeque;
import java.util.Deque;

public class IntegerStack {
  private Deque<Integer> data = new ArrayDeque<Integer>();

  public void push(Integer element) {
    data.addFirst(element);
  }

  public Integer pop() {
    return data.removeFirst();
  }

  public Integer peek() {
    return data.peekFirst();
  }

  public String toString() {
    return data.toString();
  }

  public static void main(String[] args) {
    IntegerStack stack = new IntegerStack();
    for (int i = 0; i < 5; i++) {
      stack.push(i);
    }
    System.out.println("After pushing 5 elements: " + stack);

    int m = stack.pop();
    System.out.println("Popped element = " + m);

    System.out.println("After popping 1 element : " + stack);

    int n = stack.peek();
    System.out.println("Peeked element = " + n);
    System.out.println("After peeking 1 element : " + stack);
  }
}
After pushing 5 elements: [4, 3, 2, 1, 0]
Popped element = 4
After popping 1 element : [3, 2, 1, 0]
Peeked element = 3
After peeking 1 element : [3, 2, 1, 0]








9.16.Deque
9.16.1.The Collections Framework New Types
9.16.2.Create a Stack and Queue using ArrayDeque.