Kolejka priorytetów JavaScript

| | | | | | | |

Jak używać PriorityQueue w Javie

Kolejki priorytetowe są używane w programowaniu do tworzenia struktur danych, w których element danych o najwyższej wartości musi być najpierw przetworzony przez strukturę.

kodowanie w Javie możesz natknąć się na sytuację, w której chcesz zaimplementować kolejkę priorytetową. W tym miejscu pojawia się interfejs Java Queue. Jednak ponieważ kolejka jest interfejsem, nie można jej zaimplementować bezpośrednio w kodzie. Jeśli chcesz utworzyć kolejkę priorytetową ze strukturą danych stosu, musisz zamiast tego użyć PriorityQueue.

Ten samouczek omówi podstawy PriorityQueue w Javie i odkryje, jak utworzyć kolejkę . W tym samouczku omówimy również główne metody oferowane przez PriorityQueue, których można użyć do pobierania i manipulowania zawartością kolejki.

Kod Java i PriorityQueue

Kolejki, takie jak stosy, są podane struktury, które mają określoną kolejność wykonywania operacji. W przypadku kolejek operacje wykonywane są dla pierwszego wejścia, pierwszego wyjścia (FIFO). Oznacza to, że pierwsza pozycja na liście zawsze pojawi się jako pierwsza — . Kolejka jest sortowana według wprowadzonych pozycji

Załóżmy, że jesteś w restauracji i złożyłeś zamówienie. Zalecamy, aby zostać obsłużonym w momencie, gdy każdy klient zamówił jedzenie, ponieważ jest to najmilsze podejście. Więc jeśli zamówiłeś jedzenie po Jacku, chcesz być serwowany natychmiast po Jacku. To jest przykład kolejki.

Na potrzeby tego samouczka skupimy się na opracowaniu PriorityQueue kolejki interfejsu, oczekiwania, która służy do tworzenia linii kolejki priorytetowej w Javie.

PriorityQueues to typ kolejki, w której elementy są sortowane według ich priorytetu. Oznacza to, że w kolejce z wartościami ‚Ę‚Ęã5 i 10, 10 zawsze będzie na górze kolejki, nawet jeśli zostało dodane jako ostatnie.

Utwórz kolejkę priorytetową

Aby utworzyć kolejkę priorytetową w Javie, musisz najpierw zaimportować java.util.PriorityQueue . Ten pakiet zawiera metodę PriorityQueue, której możemy użyć do stworzenia naszych kolejek. Możemy zaimportować pakiet PriorityQueue za pomocą tego kodu:

teraz zaimportowaliśmy PriorityQueue, możemy stworzyć kolejkę oczekujących przy użyciu pakietu. składnia użyta do utworzenia PriorityQueue:

ZNAJDŹ Niech to:

  • PriorityQueue mówi naszemu programowi, że chce utworzyć kolejkę priorytetową
  • DataType to typ danych do naszej kolejki, oczekujących na przechowywanie.
  • nazwa_kolejki to nazwa zmiennej, na którą kolejka oczekujących, tworzyć będzie. przyznano
  • nową kolejkę PriorityQueue (); zainicjuj kolejkę a priori zamknij

Załóżmy więc, że chcemy utworzyć kolejkę przechowującą zamówienia klientów w naszej restauracji chcemy, aby nasza kolejka przechowywała numer stołu każdego klienta, możemy utworzyć ten stos za pomocą następującego kodu: ..

W tym przykładzie stworzyliśmy instancję PriorityQueue o nazwie orders o wartościach całkowitych ‚Ęã‚Ęã który przechowuje w naszej kolejce elementy będą dostępne i usuwane przy użyciu struktury danych FIFO.

Dodaj element do PriorityQueue

W Javie każdy element w kolejce jest wywoływany element.

aby dodać element do kolejki, możemy użyć add() Ta metoda przyjmuje jeden parametr: wartość elementu, który chcesz dodać do swojej kolejki . Jeśli kolejka oczekujących e jest pełna, add() zwraca wyjątek.

Dodatkowo możemy użyć Oferta(), aby dodać element do kolejki. Różnica między add () i Offer () polega na tym, że Offer () zwraca false, jeśli kolejka jest pełna, podczas gdy add ( ) zgłasza wyjątek.

Załóżmy, że chcemy dodać tabele #22 i #17 w tej kolejności do naszego stosu, ponieważ właśnie zamówili lunch. Możemy to zrobić za pomocą tego kodu:

Nasz kod zwraca:

Przerwij z naszego przykładu. Najpierw zaimportowaliśmy klasę PriorityQueue, której użyjemy później w naszym kodzie. Tak więc zadeklarowaliśmy klasę o nazwie AddCustomer, która przechowuje nasz kod dla tego przykładu. Tak działa kod w naszej klasie:

  1. Używamy new PriorityQueue <> (); do utworzenia kolejki priorytetowej o nazwie commands .
  2. Używamy add(), aby dodać tabelę nr 22 do naszego stosu
  3. Wypisujemy słowo commands:., a następnie przez zawartość naszego stosu w konsoli.
  4. Używamy offer (), aby dodać tabelę nr 17 do naszego stosu.
  5. Drukujemy do konsoli termin zaktualizowane polecenia . , po którym następuje poprawiona zawartość naszego stosu
  6. 22 pojawia się jako pierwszy na naszym stosie, a zatem będzie pierwszym, który zakończy działanie, gdy usuniemy element. Innymi słowy, tablica #22 znajduje się na szczycie naszego stosu. Tabela nr 17 jest przechowywana na drugiej pozycji w naszym stosie. Pamiętaj - kolejki oczekujących priorytetu są klasyfikowane w kolejności FIFO

Nasz kod zwraca tablica z naszymi oryginalnymi poleceniami, a następnie tablica z naszymi zaktualizowanymi poleceniami .

usuń element z PriorityQueue

Istnieją dwie metody, których można użyć do usunięcia elementu z PriorityQueue:

Załóżmy, że nasz podszef przetworzył polecenie nr 17 i chce usunąć je ze stosu. Po przetworzeniu zamówienia nasz kucharz przygotował się do nr 22 i chce usunąć ze stosu.

Ref. 17 jest na pozycji 2 naszego stosu i zlecenie nr 22 i s na pozycji 1. Chcemy wyeliminować te pozycje w tej kolejności. Możemy użyć tego kodu do usunięcia poleceń:

Nasz kod zwraca:

Niech nasz kod się zatrzyma. Najpierw użyliśmy delete(), aby usunąć zamówienie na pozycji 2 w naszym stosie. To polecenie nr 17 zostało usunięte

nasz kod wydrukował wiadomość o treści:.? Zamówienie nr 17 zostało usunięte, po którym nastąpił wynik metody delete(). delete() pomyślnie usunął #17 z naszego stosu, metoda zwraca true

Następnie użyliśmy poll() do usunięcia najwyższego elementu z naszego stosu. W tym przypadku nie było porządku. 22. poll() usuwa kolejność ne. 22 i zwrócił usunięty element. Po usunięciu elementu wydrukowaliśmy komunikat Dowódca nr [numer zamówienia usunięty] został usunięty z kolejki . w konsoli.

Pobierz element

Metoda peek () służy do pobierania nagłówka elementu kolejki (pierwszy element w kolejce ). Załóżmy, że chcemy poznać wartość następnego zamówienia w naszym stosie, ponieważ nasz szef kuchni jest gotowy do przyjęcia nowego zamówienia.

Możemy użyć tego kodu do pobrania numeru stołu klienta, który znajduje się obok linia:

Nasz kod zwraca:

pierwszy element na naszym stosie to 22, więc kiedy używamy peek(), nasz program zwraca wartość 22 "ostatni wiersz naszego kodu , wyświetlamy komunikat, który mówi: kolejność do przetworzenia to tabela nr [pierwszy numer zamówienia na stosie], gdzie pierwszy numer zamówienia na stosie został odkryty przez peek().

Kolejka iteruje według priorytetu

Często podczas pracy z kolejkami chcesz iterować elementy w kolejce priorytetowej

p>

W tym celu możemy użyć iterator(), który jest częścią pakietu java.util.Iterator. używamy kodu <> iterator() , musisz najpierw zaimportować pakiet Iteratora za pomocą tego kodu:

Załóżmy, że chcemy wydrukować listę wszystkich pozycji w naszej kolejce zamówień restauracji do konsoli, którą moglibyśmy zrobić za pomocą tego kodu:.

Nasz kod zwraca:

W naszym kodzie najpierw dodajemy cztery wartości „Ęã‚Ęãdo naszej kolejki. Następnie używamy iteratora(), aby utworzyć iterator, którego możemy użyć do zbadania wszystkich pozycji w naszej kolejce priorytetowej. Następnie tworzymy while, który przechodzi przez każdy element w naszym iteratorze — dla każdego elementu w kolejce command — . I wypisuje następującą wartość w kolejce <

h2> dodatkowe metody PriorityQueue

Istnieją trzy inne metody, które są często używane z klasą PriorityQueue. Są to:

Nazwa metody opis
size () zwraca długość kolejki .
toArray () konwertuje kolejkę na tablicę.
zawiera (nazwa elementu) Przeszukaj kolejkę w poszukiwaniu elementu.

Wnioski

Klasa PriorityQueue jest używana w Javie do implementacji oczekującego interfejsu kolejki. Kolejki używają struktury danych FIFO, więc pierwsze jest pierwsze.

Ten samouczek pokazał podstawy kolejkowania i kolejek priorytetowych w Javie. Omówiliśmy również, jak utworzyć kolejkę i główne metody, których można użyć do pobrania elementów i manipulować kolejką.

Teraz masz narzędzia potrzebne do rozpoczęcia korzystania z klasy Java PriorityQueue jak profesjonalista!

>

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method