Java Queue: Όλα όσα πρέπει να γνωρίζετε για την ουρά στην Java



Σε αυτό το άρθρο θα πάρουμε μια δημοφιλή δομή δεδομένων Java γνωστή ως Java Queue. Θα χρησιμοποιήσουμε επίσης κατάλληλα παραδείγματα μέσω προγραμματισμού για καλύτερη κατανόηση.

είναι μια ισχυρή γλώσσα προγραμματισμού και υποστηρίζει διάφορες δομές δεδομένων για να κάνει τη ζωή των προγραμματιστών εύκολη. Σε αυτό το άρθρο θα ρίξουμε μια ματιά σε μια τέτοια δομή δεδομένων που είναι το Java Queue. Αυτοί είναι οι δείκτες στους οποίους επικεντρώνεται αυτό το άρθρο,

Ας ξεκινήσουμε τότε,





Ουρά στην Ιάβα

Η ουρά είναι μια δομή δεδομένων που ακολουθεί την αρχή του FIFO (First-In-First-Out), δηλαδή τα στοιχεία εισάγονται στο τέλος της λίστας και διαγράφονται από την αρχή της λίστας. Αυτή η διεπαφή είναι διαθέσιμη στο java.util.package και επεκτείνει τη συλλογή Interface.

Η ουρά υποστηρίζει πολλές μεθόδους, όπως εισαγωγή και διαγραφή. Οι ουρές που διατίθενται στο java.util.package είναι γνωστές ως Χωρίς περιορισμούς ουρές , ενώ οι ουρές που υπάρχουν στο πακέτο java.util.concurrent είναι γνωστές Οριοθετημένες ουρές.



Όλες οι ουρές, εκτός από τους Deques, υποστηρίζουν την εισαγωγή στο τέλος και τη διαγραφή από μπροστά. Οι Deques υποστηρίζουν την εισαγωγή και διαγραφή στοιχείων και στα δύο άκρα.

πώς να ρυθμίσετε το classpath στο java

Ας προχωρήσουμε στο επόμενο θέμα αυτού του άρθρου σχετικά με την ουρά Java,

Εφαρμογή της ουράς Java

Για να χρησιμοποιήσουμε τη διεπαφή ουράς, πρέπει να δημιουργήσουμε μια συγκεκριμένη κατηγορία. Ακολουθούν οι λίγες εφαρμογές που μπορούν να χρησιμοποιηθούν:



  • util.LinkedList
  • util.PriorityQueue

Επειδή αυτές οι υλοποιήσεις δεν είναι ασφαλείς για νήματα, το PriorityBlockingQueue λειτουργεί ως εναλλακτική λύση για την ασφαλή εφαρμογή του νήματος.

Παράδειγμα:

Ουρά q1 = νέα LinkedList ()
Ουρά q2 = νέα προτεραιότηταQueue ()

Ας πάρουμε ένα lok σε μερικές σημαντικές μεθόδους Java Queue,

Μέθοδοι στην ουρά Java

  • Προσθήκη(): Η μέθοδος προσθήκης () χρησιμοποιείται για την εισαγωγή στοιχείων στο τέλος ή στην ουρά της ουράς. Η μέθοδος κληρονομείται από τη διεπαφή συλλογής.
  • προσφορά(): Η μέθοδος προσφοράς () είναι προτιμότερη από τη μέθοδο προσθήκης (), καθώς εισάγει το καθορισμένο στοιχείο στην ουρά χωρίς να παραβιάζει τυχόν περιορισμούς χωρητικότητας.
  • κρυφοκοίταγμα(): Η μέθοδος peek () χρησιμοποιείται για να κοιτάξουμε στο μπροστινό μέρος της ουράς χωρίς να την αφαιρέσουμε. Εάν η ουρά είναι κενή, επιστρέφει μια τιμή null.
  • στοιχείο(): Εάν η ουρά είναι κενή, η μέθοδος ρίχνει το NoSuchElementException.
  • αφαιρώ(): Η μέθοδος remove () αφαιρεί το μπροστινό μέρος της ουράς και την επιστρέφει. Ρίχνει το NoSuchElementException εάν η ουρά είναι κενή.
  • ψηφοφορία(): Η μέθοδος poll () αφαιρεί την αρχή της ουράς και την επιστρέφει. Εάν η ουρά είναι κενή, επιστρέφει μια τιμή null.

Μια επισκόπηση των ακόλουθων μεθόδων δίνεται ως εξής:

Λειτουργία

Ρίχνει την εξαίρεση

Επιστρέφει την τιμή

Εισάγετε

προσθήκη (στοιχείο)

προσφορά (στοιχείο)

Αφαιρώ

αφαιρώ()

ψηφοφορία()

Εξετάζω

στοιχείο()

κρυφοκοίταγμα()

Ας ρίξουμε μια ματιά στην επίδειξη τώρα,

Πρόγραμμα επίδειξης μεθόδων ουράς

import java.util. * public class Main {public static void main (String [] args) {// Δεν μπορούμε να δημιουργήσουμε παρουσία μιας ουράς δεδομένου ότι είναι μια διεπαφή, επομένως Queue q1 = new LinkedList () // Προσθήκη στοιχείων σε η ουρά q1.add ('I') q1.add ('Love') q1.add ('Rock') q1.add ('And') q1.add ('Roll') System.out.println ('Elements στην ουρά: '+ q1) / * * Μπορούμε να αφαιρέσουμε ένα στοιχείο από την ουρά χρησιμοποιώντας τη μέθοδο κατάργησης (), * αυτό αφαιρεί το πρώτο στοιχείο από την ουρά * / System.out.println (' Στοιχείο που αφαιρέθηκε: '+ q1.remove ( )) / * * στοιχείο () μέθοδος - επιστρέφει το κεφάλι του * Ουρά. * / System.out.println ('Head:' + q1.element ()) / * * poll () μέθοδος - αυτό αφαιρεί και επιστρέφει το * head της ουράς. Επιστρέφει null εάν η ουρά είναι κενή * / System.out.println ('poll ():' + q1.poll ()) / * * peek () method - λειτουργεί ίδια με το στοιχείο element (), * ωστόσο επιστρέφει null αν η ουρά είναι κενή * / System.out.println ('peek ():' + q1.peek ()) // Εμφάνιση των στοιχείων του Queue System.out.println ('Elements in Queue:' + q1)} }

Παραγωγή:

Στοιχεία στην ουρά: [I, Love, Rock, And, Roll]

Καταργημένο στοιχείο: I

Κεφάλι: Αγάπη

δημοσκόπηση (): Αγάπη

peek (): Ροκ

Στοιχεία στην ουρά: [Rock, And, Roll]. Στο παραπάνω παράδειγμα, το Generic Queue έχει χρησιμοποιηθεί.

Σε αυτόν τον τύπο ουράς, μπορούμε να περιορίσουμε τον τύπο αντικειμένου που εισάγεται στην ουρά. Στο παράδειγμά μας, μπορούμε να εισαγάγουμε μόνο σειρές παρουσιών στην ουρά.

Επανάληψη μέσω μιας ουράς Java

Τα στοιχεία σε μια ουρά java μπορούν να επαναληφθούν χρησιμοποιώντας τον ακόλουθο κώδικα:

Ουρά q1 = νέα LinkedList ()

q1.add ('Rock')

q1.add ('Και')

q1.add ('Roll')

// πρόσβαση μέσω Iterator

Iterator iterator = q1.iterator ()

ενώ (iterator.hasNext () {

Στοιχείο συμβολοσειράς = (String) iterator.next ()

}

// πρόσβαση μέσω νέου for-loop

για (αντικείμενο αντικειμένου: q1) {

Στοιχείο συμβολοσειράς = (String) αντικείμενο

πώς να ξεκινήσετε aws cli

}

Η ακολουθία στην οποία επαναλαμβάνονται τα στοιχεία εξαρτάται από την εφαρμογή της ουράς.

Ενώ υπάρχουν πολλές μέθοδοι που μπορεί να εφαρμόσει μια ουρά Java, οι πιο σημαντικές μέθοδοι έχουν συζητηθεί εδώ.

Έτσι, έχουμε φτάσει στο τέλος αυτού του άρθρου σχετικά με το «Java Queue». Αν θέλετε να μάθετε περισσότερα,δείτε το από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία μάθησης. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για να σας εκπαιδεύσει τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.