// Демонстрация работы очередей и двусторонних очередейimport java.util.*;public class QueueExamples { public static void main(String[] args) { // PriorityQueue: извлечение по приоритету (минимальный элемент первым) Queue<Integer> priorityQueue = new PriorityQueue<>(); priorityQueue.offer(10); priorityQueue.offer(2); priorityQueue.offer(5); System.out.println("Приоритетный элемент: " + priorityQueue.poll()); // 2 // Deque (ArrayDeque): работа как стек (LIFO) и очередь (FIFO) Deque<String> deque = new ArrayDeque<>(); // Добавление в конец (как в очередь) deque.offerLast("A"); deque.offerLast("B"); // Добавление в начало (как в стек) deque.push("C"); System.out.println("Последний элемент: " + deque.peekLast()); // B System.out.println("Первый элемент: " + deque.pop()); // C (удалено) // Очистка очереди while (!deque.isEmpty()) { System.out.print(deque.poll() + " "); } }}
// Демонстрация работы очередей и двусторонних очередейimport java.util.*;public class QueueExamples { public static void main(String[] args) { // PriorityQueue: извлечение по приоритету (минимальный элемент первым) Queue<Integer> priorityQueue = new PriorityQueue<>(); priorityQueue.offer(10); priorityQueue.offer(2); priorityQueue.offer(5); System.out.println("Приоритетный элемент: " + priorityQueue.poll()); // 2 // Deque (ArrayDeque): работа как стек (LIFO) и очередь (FIFO) Deque<String> deque = new ArrayDeque<>(); // Добавление в конец (как в очередь) deque.offerLast("A"); deque.offerLast("B"); // Добавление в начало (как в стек) deque.push("C"); System.out.println("Последний элемент: " + deque.peekLast()); // B System.out.println("Первый элемент: " + deque.pop()); // C (удалено) // Очистка очереди while (!deque.isEmpty()) { System.out.print(deque.poll() + " "); } }}