Реализация очереди может основываться на FIFO , приоритетов и LIFO - так говорится в официальной документации.
Когда программист впервые видит « Очередь », он автоматически думает: « это должен быть порядок FIFO » ( или, в конечном итоге, приоритетный заказ ).Но, как говорится в документации, должна быть возможность использовать интерфейс очереди для упорядочения LIFO.Позвольте мне объяснить вам, как это можно сделать.
// FIFO queue usage
Queue<Integer> queue = new LinkedList<>();
queue.add(1);
queue.add(2);
queue.remove(); // returns 1
queue.remove(); // returns 2
// LIFO queue usage
Queue<Integer> queue = Collections.asLifoQueue(new ArrayDeque<>());
queue.add(1);
queue.add(2);
queue.remove(); // returns 2
queue.remove(); // returns 1
Как вы можете видеть в зависимости от реализации, интерфейс очереди можно использовать также как LIFO.