Java PriorityQueue
Приоритетная очередь Java
В этом руководстве мы узнаем о классе PriorityQueue платформы коллекций Java с помощью примеров.
00
Класс предоставляет функциональные возможности структуры данных кучи.
Он реализует интерфейс Queue.
В отличие от обычных очередей, элементы приоритетной очереди извлекаются в отсортированном порядке.
Предположим, мы хотим получить элементы в порядке возрастания. В этом случае глава приоритетной очереди будет наименьшим элементом. Как только этот элемент будет получен, следующий наименьший элемент будет в начале очереди.
Важно отметить, что элементы приоритетной очереди не могут быть отсортированы. Однако элементы всегда извлекаются в отсортированном порядке.
<час>Создание PriorityQueue
Чтобы создать приоритетную очередь, мы должны импортировать 14
упаковка. Как только мы импортируем пакет, вот как мы можем создать приоритетную очередь в Java.
01
Здесь мы создали приоритетную очередь без каких-либо аргументов. В этом случае голова приоритетной очереди является наименьшим элементом очереди. И элементы удаляются из очереди в порядке возрастания.
Однако мы можем настроить порядок элементов с помощью 27
интерфейс. Мы узнаем об этом позже в этом руководстве.
Методы PriorityQueue
30
класс обеспечивает реализацию всех методов, представленных в 46
интерфейс.
Вставить элементы в PriorityQueue
59
- Вставляет указанный элемент в очередь. Если очередь заполнена, генерируется исключение.67
- Вставляет указанный элемент в очередь. Если очередь заполнена, возвращается77
.
Например,
10пре>Вывод
28Здесь мы создали приоритетную очередь с именем numbers. . Мы вставили 4 и 2 в очередь.
Хотя 4 вставляется перед 2, заголовок очереди равен 2. Это связано с тем, что заголовок приоритетной очереди является наименьшим элементом очереди.
Затем мы вставили 1 в очередь. Очередь теперь реорганизована так, чтобы наименьший элемент 1 помещался в начало очереди.
<час>Доступ к элементам PriorityQueue
Чтобы получить доступ к элементам из очереди с приоритетом, мы можем использовать
82
метод. Этот метод возвращает голову очереди. Например,32Вывод
40<час>Удалить элементы PriorityQueue
90
- удаляет указанный элемент из очереди100
- возвращает и удаляет голову очереди
Например,
59
Вывод
61<час>
Итерация PriorityQueue
Для перебора элементов приоритетной очереди мы можем использовать 118
метод. Чтобы использовать этот метод, мы должны импортировать 122
упаковка. Например,
73
Вывод
80<час>
Другие методы PriorityQueue
Методы | Описания |
---|---|
131 | Выполняет поиск указанного элемента в приоритетной очереди. Если элемент найден, он возвращает 146 , если нет, возвращает 150 . |
165 | Возвращает длину приоритетной очереди. |
176 | Преобразует приоритетную очередь в массив и возвращает ее. |
Компаратор PriorityQueue
Во всех приведенных выше примерах элементы очереди с приоритетом извлекаются в естественном порядке (в порядке возрастания). Однако мы можем изменить этот порядок.
Для этого нам нужно создать собственный класс компаратора, реализующий 185
интерфейс. Например,
90
Вывод
107
В приведенном выше примере мы создали приоритетную очередь, передавая CustomComparator. класс в качестве аргумента.
Пользовательский компаратор класс реализует 197
интерфейс.
Затем мы переопределяем 208
метод. Теперь метод заставляет заголовок элемента быть наибольшим числом.
Чтобы узнать больше о компараторе, посетите Java Comparator.
java