Coda Di Priorità Javascript
__del__ |
__delete__ |
exp |
find |
iat |
JavaScript |
mean |
sin |
toarray
Michael Zippo
04.11.2021
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:
- Utilizziamo
new PriorityQueue<>();
per creare una coda prioritaria chiamata ordini
. - Usiamo il metodo
add()
per aggiungere la tabella #22 al nostro stack. - Stampiamo la parola
Ordini:
seguito dal contenuto del nostro stack alla console. - Utilizziamo il metodo
offer()
per aggiungere la tabella #17 al nostro stack. - 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:
remove()
rimuove una singola istanza di un elemento da una coda.poll()
rimuove il primo elemento da una coda e restituisce l’elemento rimosso.
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 metodo | Descrizione |
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
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