Coda Di Priorità Javascript

| | | | | | | |

Come utilizzare PriorityQueue in Java

Le code prioritarie vengono utilizzate nella programmazione per creare strutture di dati in cui l’elemento di dati con il valore più alto deve essere elaborato per primo dalla struttura.

Quando stai codificando in Java, potresti riscontrare una situazione in cui desideri implementare una coda prioritaria. è qui che entra in gioco l’interfaccia Java Queue. Tuttavia, poiché Queue è un’interfaccia, non è possibile implementarla direttamente nel codice. Se desideri creare una coda prioritaria con la struttura dati dell’heap, dovrai invece utilizzare PriorityQueue.

Questo tutorial discuterà le basi di PriorityQueue in Java ed esplorerà come creare una coda. Questo tutorial esplorerà anche i principali metodi offerti da PriorityQueue che possono essere utilizzati per recuperare e manipolare il contenuto della coda.

Code Java e PriorityQueue

Le code, come gli stack, sono dati strutture che hanno un ordine specifico in cui vengono eseguite le operazioni. Nel caso delle code, le operazioni vengono eseguite nell’ordine First-In, First-Out (FIFO). Ciò significa che il primo elemento nell’elenco sarà sempre il primo ad uscire ‚Äî la coda è ordinata in base agli elementi inseriti.

Supponiamo di essere in un ristorante e di aver effettuato un ordine. Ti consigliamo di essere servito in ordine di quando ogni cliente ha ordinato il proprio cibo, perché questo è l’approccio più equo. Quindi, se hai ordinato il tuo cibo dopo Jack, vorrai essere servito immediatamente dopo Jack. Questo è un esempio di coda.

Per gli scopi di questo tutorial, ci concentreremo sull’implementazione PriorityQueue dell’interfaccia Queue, che viene utilizzata per creare code prioritarie in Java.

Le PriorityQueue sono un tipo di coda i cui elementi sono ordinati in base alla loro priorità. Ciò significa che, in una coda con i valori 5 e 10, 10 sarà sempre all’inizio della coda, anche se è stato aggiunto per ultimo.

Crea una coda prioritaria

Per creare una coda prioritaria in Java, devi prima importare il pacchetto java.util.PriorityQueue. Questo pacchetto contiene il metodo PriorityQueue che possiamo usare per creare le nostre code. Possiamo importare il pacchetto PriorityQueue usando questo codice:

Ora abbiamo importato PriorityQueue, possiamo creare una coda utilizzando il pacchetto. Ecco la sintassi utilizzata per creare una PriorityQueue:

Scopriamo questo:

  • PriorityQueue dice al nostro programma che desidera creare una coda prioritaria.
  • DataType è il tipo di dati che la nostra coda memorizzerà.
  • queue_name è il nome della variabile a cui verrà assegnata la coda che creiamo.
  • new PriorityQueue(); inizializza una coda prioritaria.

Quindi, supponiamo di voler creare una coda che memorizzi gli ordini dei clienti nel nostro ristorante. Vogliamo che la nostra coda memorizzi il numero del tavolo di ogni cliente. Potremmo creare questo stack usando il seguente codice:

In questo esempio, abbiamo creato un’istanza di PriorityQueue chiamata orders che memorizza valori interi. Nella nostra coda, gli elementi saranno accessibili e rimossi utilizzando la struttura dati FIFO.

Aggiungi elemento a PriorityQueue

In Java, ogni elemento in una coda è chiamato item.

Per aggiungere un elemento a una coda, possiamo usare il metodo add(). Questo metodo accetta un parametro: il valore dell’elemento che vuoi aggiungere alla tua coda. Se la coda e è pieno, il metodo add() restituirà un’eccezione.

Inoltre, possiamo usare il metodo offer() per aggiungere un elemento a una coda. La differenza tra add() e offer() è che offer() restituisce false se la coda è piena, mentre add( ) genera un’eccezione.

Supponiamo di voler aggiungere le tabelle #22 e #17 in quell’ordine al nostro stack perché hanno appena ordinato il pranzo. Potremmo farlo usando questo codice:

Il nostro codice restituisce:

Scomponiamo il nostro esempio. Innanzitutto, abbiamo importato la classe PriorityQueue, che utilizzeremo in seguito nel nostro codice. Quindi abbiamo dichiarato una classe chiamata AddCustomer, che memorizza il nostro codice per questo esempio. Ecco come funziona il codice all’interno della nostra classe:

  1. Utilizziamo new PriorityQueue<>(); per creare una coda prioritaria chiamata ordini.
  2. Usiamo il metodo add() per aggiungere la tabella #22 al nostro stack.
  3. Stampiamo la parola Ordini: seguito dal contenuto del nostro stack alla console.
  4. Utilizziamo il metodo offer() per aggiungere la tabella #17 al nostro stack.
  5. Stampiamo nella console il termine Ordini aggiornati: seguito dal contenuto rivisto del nostro stack.

22 appare per primo nel nostro stack, e cosi sarà essere il primo ad uscire quando rimuoviamo un elemento. In altre parole, il tavolo #22 è in cima al nostro stack. La tabella #17 è memorizzata nella seconda posizione nel nostro stack. Ricorda, le code prioritarie sono ordinate secondo l’ordine FIFO.

Il nostro codice restituisce un array con i nostri ordini originali, quindi un array con i nostri ordini aggiornati.

Rimuovi elemento da PriorityQueue

Ci sono due metodi che possono essere utilizzato per rimuovere un elemento da una PriorityQueue:

Supponiamo che il nostro sous-chef abbia elaborato l’ordine #17 e voglia rimuoverlo dallo stack . Dopo che l’ordine è stato elaborato, il nostro chef ha preparato l’ordine n. 22 e desidera rimuoverlo dalla pila.

L’ordine n. 17 si trova nella posizione 2 della nostra pila e l’ordine n. 22 è in posizione 1. Vogliamo rimuovere questi elementi in quell’ordine. Potremmo usare questo codice per rimuovere gli ordini:

Il nostro codice restituisce:

Scomponiamo il nostro codice. Per prima cosa, abbiamo usato il metodo remove() per rimuovere l’ordine nella posizione 2 nel nostro stack. Questo ordine #17 rimosso.

Quindi il nostro codice ha stampato un messaggio che indicava: L’ordine #17 è stato rimosso?seguito dal risultato di remove() metodo. remove() ha rimosso con successo #17 dal nostro stack, quindi il metodo ha restituito true.

Successivamente, abbiamo usato il metodo poll() per rimuovere l’elemento in cima al nostro stack. In questo caso, era l’ordine n. 22. poll() ha rimosso l’ordine n. 22 e restituito l’articolo rimosso. Dopo che l’articolo è stato rimosso, abbiamo stampato il messaggio L’ordine #[numero ordine rimosso] è stato rimosso dalla coda. nella console.

Recupera articolo

Il metodo peek() viene utilizzato per recuperare l’intestazione di un elemento della coda (il primo elemento nella coda). Supponiamo di voler conoscere il valore del prossimo ordine nel nostro stack perché il nostro sous-chef è pronto ad accettare un nuovo ordine.

Potremmo usare questo codice per recuperare il numero di tavolo del cliente che è successivo nella riga:

Il nostro codice restituisce:

Il primo elemento nel nostro stack è 22, quindi quando usiamo il metodo peek(), il nostro programma restituisce il valore 22 Nell’ultima riga del nostro codice, stampiamo un messaggio che dice: Il prossimo ordine da elaborare è la tabella #[numero del primo ordine nello stack]., dove il numero del primo ordine in lo stack è stato scoperto da peek().

Iterare attraverso una coda prioritaria

Spesso, quando lavori con le code, vorrai creare un iteratore sugli elementi della coda di priorità.

Per farlo, possiamo usare il metodo iterator(), che fa parte del pacchetto java.util.Iterator. usiamo il metodo iterator(), dobbiamo prima importare il pacchetto Iterator usando questo codice:

Supponiamo di voler stampare un elenco di ogni articolo nella nostra coda di ordini del ristorante sulla console. Potremmo farlo usando questo codice:

Il nostro codice restituisce:

Nel nostro codice, aggiungiamo prima quattro valori alla nostra coda. Quindi usiamo il metodo iterator() per creare un iteratore che possiamo usare per esaminare ogni elemento nella nostra coda di priorità. Quindi creiamo un ciclo while che attraversa ogni elemento nel nostro iteratore ‚Äî per ogni articolo nella coda ordini ‚Äî e stampa il valore successivo nella coda.

Metodi PriorityQueue aggiuntivi

Ci sono altri tre metodi che vengono spesso utilizzati con la classe PriorityQueue. Questi sono i seguenti:

Nome metodoDescrizione
size()Restituisce la lunghezza della coda.
toArray()Converte la coda in un array.
contains(elementName)Cerca nella coda un element.

Conclusione

La classe PriorityQueue viene utilizzata in Java per implementare l’interfaccia Queue. Le code utilizzano la struttura dati FIFO, quindi il primo elemento in ingresso è il primo in uscita.

Questo tutorial ha illustrato le basi delle code e PriorityQueues in Java. Abbiamo anche discusso su come creare una coda e sui metodi principali che puoi utilizzare per recuperare elementi e manipolare una coda.

Ora hai gli strumenti necessari per iniziare a utilizzare la classe Java PriorityQueue come un professionista!< /p>

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