Приоритет Очередь в 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 J2EE и SOA от Edureka разработан, чтобы научить вас базовым и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.
Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога, и мы свяжемся с вами как можно скорее.