Как реализовать приоритетную очередь в Java?



Эта статья познакомит вас с еще одной интересной темой в области программирования, а именно с приоритетной очередью в Java, а также с демонстрацией

Приоритет Очередь в Java используется, когда предполагается, что объекты будут обрабатываться на основе приоритета. Эта статья поможет вам подробно изучить эту концепцию. Следующие указатели будут рассмотрены в этой статье,

Итак, давайте тогда приступим,





Приоритетная очередь в Java

Как уже упоминалось, PriorityQueue используется, когда предполагается, что объекты будут обрабатываться на основе приоритета. Известно, что очередь следует алгоритму First-In-First-Out, но иногда элементы очереди необходимо обрабатывать в соответствии с приоритетом, когда в игру вступает PriorityQueue. PriorityQueue основан на куче приоритетов. Элементы приоритетной очереди упорядочиваются в соответствии с естественным порядком или с помощью компаратора, предоставленного во время построения очереди, в зависимости от того, какой конструктор используется. Несколько важных моментов в приоритетной очереди:

  • PriorityQueue не допускает указателей NULL.
  • Мы не можем создавать PriorityQueue из несопоставимых объектов
  • PriorityQueue - это несвязанные очереди.
  • Заголовок этой очереди является наименьшим элементом по отношению к указанному порядку. Если несколько элементов связаны по наименьшей стоимости, одним из таких элементов является голова - связи разрываются произвольно.
  • Операции извлечения очереди опрашивают, удаляют, просматривают и получают доступ к элементу в начале очереди.
  • Он наследует методы от AbstractQueue, AbstractCollection, Collection и класса Object.

Продолжаем эту статью о приоритетной очереди в Java



Объявление интерфейса очереди

открытый интерфейс Queue расширяет коллекцию

Продолжаем эту статью о приоритетной очереди в Java

Методы интерфейса очереди Java

Метод Описание

логическое добавление (объект)



Он используется для вставки указанного элемента в эту очередь и возврата true в случае успеха.

логическое предложение (объект)

Он используется для вставки указанного элемента в эту очередь.

Удаление объекта ()

Он используется для извлечения и удаления заголовка этой очереди.

Опрос объекта ()

Он используется для извлечения и удаления заголовка этой очереди или возвращает null, если эта очередь пуста.

Элемент объекта ()

Он используется для извлечения, но не удаления заголовка этой очереди.

Обзор объекта ()

Он используется для извлечения, но не удаления заголовка этой очереди, или возвращает null, если эта очередь пуста.

Продолжаем эту статью о приоритетной очереди в Java

Разделить строку Java на несколько разделителей

пример

пакет com.journaldev.collections

import java.util.Comparator import java.util.PriorityQueue import java.util.Queue import java.util.Random public class PriorityQueueExample {public static void main (String [] args) {// пример естественного упорядочивания очереди с приоритетом Queue integerPriorityQueue = new PriorityQueue (7) Random rand = new Random () для (int i = 0i<7i++){ integerPriorityQueue.add(new Integer(rand.nextInt(100))) } for(int i=0i<7i++){ Integer in = integerPriorityQueue.poll() System.out.println('Processing Integer:'+in) } //PriorityQueue example with Comparator Queue customerPriorityQueue = new PriorityQueue(7, idComparator) addDataToQueue(customerPriorityQueue) pollDataFromQueue(customerPriorityQueue) } //Comparator anonymous class implementation public static Comparator idComparator = new Comparator(){ @Override public int compare(Customer c1, Customer c2) { return (int) (c1.getId() - c2.getId()) } } //utility method to add random data to Queue private static void addDataToQueue(Queue customerPriorityQueue) { Random rand = new Random() for(int i=0 i<7 i++){ int id = rand.nextInt(100) customerPriorityQueue.add(new Customer(id, 'Pankaj '+id)) } } //utility method to poll data from queue private static void pollDataFromQueue(Queue customerPriorityQueue) { while(true){ Customer cust = customerPriorityQueue.poll() if(cust == null) break System.out.println('Processing Customer with ID='+cust.getId()) } } } 

Вывод:

Вывод - очередь приоритетов в Java - Edureka

На этом мы подошли к концу статьи о приоритетной очереди в Java. Если вы хотите узнать больше, ознакомьтесь с от Edureka, надежной компании онлайн-обучения. Курс обучения и сертификации по Java J2EE и SOA от Edureka разработан, чтобы научить вас базовым и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога, и мы свяжемся с вами как можно скорее.