PriorityQueue — это специальная структура данных в Java, которая расширяет интерфейс Queue. В отличие от обычной очереди, элементы не обрабатываются в порядке FIFO (First-In-First-Out). Вместо этого элементы извлекаются на основе их приоритета.
PriorityQueue хранит элементы в определённом порядке двумя способами:
Comparable)Под капотом используется структура данных двоичная куча (priority heap), что делает очередь неограниченной.
nullPriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(5);
pq.add(1);
pq.add(3);
System.out.println(pq.poll()); // Выведет: 1
System.out.println(pq.poll()); // Выведет: 3
PriorityQueue идеально подходит, когда нужна автоматическая сортировка элементов по приоритету — например, для планирования задач, алгоритма Дейкстры или реализации решений на основе кучи. Если же нужна потокобезопасность, используй вместо неё PriorityBlockingQueue.
PriorityQueue по умолчанию хранит элементы в порядке FIFO, но позволяет определить пользовательский порядок через Comparator.
Новый — ещё не проверен сообществом
Вы