Skip to main content
Collections framework · Topic 5 of 8

Queue and Deque

Definition​

A Queue hands items out in the order they arrive (first in, first out). A PriorityQueue hands out the smallest item first. A Deque works at both ends, so ArrayDeque can act as a queue or as a stack.

Example code​

FIFO queue, priority queue and stack

import java.util.ArrayDeque;
import java.util.Deque;
import java.util.PriorityQueue;
import java.util.Queue;

class Demo {
public static void main(String[] args) {
Queue<String> line = new ArrayDeque<>(); // first in, first out
line.offer("Asha");
line.offer("Ravi");
System.out.println(line.poll() + " is served first");

PriorityQueue<Integer> tasks = new PriorityQueue<>(); // smallest number first
tasks.add(5);
tasks.add(1);
tasks.add(3);
System.out.println(tasks.poll() + " then " + tasks.poll());

Deque<String> stack = new ArrayDeque<>(); // last in, first out
stack.push("page 1");
stack.push("page 2");
System.out.println(stack.pop());
}
}

// Output:
// Asha is served first
// 1 then 3
// page 2

Finished this page? Track your progress (saved only in your browser).