Как получить максимальное значение в приоритетной очереди в Java

Чтобы получить максимальное значение в очереди приоритетов в Java, вы можете использовать следующие методы:

  1. Использование метода peek: метод peekизвлекает, но не удаляет максимальный элемент из приоритетной очереди. Он возвращает null, если очередь пуста.
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
// Add elements to the priority queue
Integer max = priorityQueue.peek();
if (max != null) {
    System.out.println("Maximum value: " + max);
} else {
    System.out.println("Priority queue is empty.");
}
  1. Использование метода poll: метод pollизвлекает и удаляет максимальный элемент из приоритетной очереди. Он возвращает null, если очередь пуста.
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
// Add elements to the priority queue
Integer max = priorityQueue.poll();
if (max != null) {
    System.out.println("Maximum value: " + max);
} else {
    System.out.println("Priority queue is empty.");
}
  1. Использование специального компаратора: по умолчанию элементы в очереди приоритетов располагаются в естественном порядке (по возрастанию чисел). Однако вы можете предоставить собственный компаратор, чтобы упорядочить элементы по-другому. Изменив порядок на обратный, вы можете легко получить максимальный элемент.
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(Collections.reverseOrder());
// Add elements to the priority queue
Integer max = priorityQueue.peek();
if (max != null) {
    System.out.println("Maximum value: " + max);
} else {
    System.out.println("Priority queue is empty.");
}