Интерфейс Queue описывает очередь (рисунок 4). Элементы могут добавляться в очередь только с одного конца, а извлекаться с другого (аналогично очереди в магазине). Интерфейс Queue так же унаследован от интерфейса Collection. Специфические для очереди методы:
poll() – возвращает первый элемент и удаляет его из очереди.
peek() – возвращает первый элемент очереди, не удаляя его.
offer(Object obj) – добавляет в конец очереди новый элемент и возвращает true, если вставка удалась.
Методы element() и remove() работают аналогично методам poll() и peek(), но если очередь пуста, возбуждают исключение.
PriorityQueue - единственная прямая реализация интерфейса Queue (не считая LinkedList, который больше является списком, чем очередью).
Эта очередь упорядочивает элементы либо по их натуральному порядку (используя интерфейс Comparable), либо с помощью интерфейса Comparator, полученному в конструкторе.
Рисунок 4