Πώς να εφαρμόσετε την ουρά προτεραιότητας στην Java;



Αυτό το άρθρο θα σας παρουσιάσει ένα ακόμη ενδιαφέρον θέμα στον τομέα προγραμματισμού που είναι το Priority Queue In Java μαζί με την επίδειξη

Μια προτεραιότητα Ουρά στην Ιάβα χρησιμοποιείται όταν τα αντικείμενα υποτίθεται ότι υποβάλλονται σε επεξεργασία με βάση την προτεραιότητα. Αυτό το άρθρο θα σας βοηθήσει να εξερευνήσετε αυτήν την ιδέα λεπτομερώς. Οι ακόλουθοι δείκτες θα καλυφθούν σε αυτό το άρθρο,

τι είναι ένας δυναμικός πίνακας

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





Ουρά προτεραιότητας στην Java

Όπως αναφέρθηκε ήδη, ένα PriorityQueue χρησιμοποιείται όταν τα αντικείμενα υποτίθεται ότι πρέπει να υποστούν επεξεργασία με βάση την προτεραιότητα. Είναι γνωστό ότι μια ουρά ακολουθεί τον αλγόριθμο First-In-First-Out, αλλά μερικές φορές τα στοιχεία της ουράς πρέπει να υποστούν επεξεργασία σύμφωνα με την προτεραιότητα, δηλαδή όταν το PriorityQueue μπαίνει στο παιχνίδι. Το PriorityQueue βασίζεται στο σωρό προτεραιότητας. Τα στοιχεία της ουράς προτεραιότητας ταξινομούνται σύμφωνα με τη φυσική σειρά ή από έναν Συγκριτή που παρέχεται κατά την κατασκευή της ουράς, ανάλογα με τον κατασκευαστή που χρησιμοποιείται. Λίγα σημαντικά σημεία σχετικά με την ουρά προτεραιότητας είναι τα εξής:

  • Το PriorityQueue δεν επιτρέπει δείκτες NULL.
  • Δεν μπορούμε να δημιουργήσουμε PriorityQueue of Objects που δεν είναι συγκρίσιμα
  • Το PriorityQueue είναι μη δεσμευμένες ουρές.
  • Η κεφαλή αυτής της ουράς είναι το λιγότερο στοιχείο σε σχέση με την καθορισμένη σειρά. Εάν τα περισσότερα στοιχεία είναι δεμένα με ελάχιστη τιμή, η κεφαλή είναι ένα από αυτά τα στοιχεία - οι δεσμοί σπάνε αυθαίρετα.
  • Οι λειτουργίες ανάκτησης ουράς δημοσκοπήσουν, αφαιρέστε, ρίξτε μια ματιά και μεταβείτε στο στοιχείο στην κεφαλή της ουράς.
  • Κληρονομεί μεθόδους από την κλάση AbstractQueue, AbstractCollection, Collection και Object.

Προχωρώντας με αυτό το άρθρο σχετικά με την ουρά προτεραιότητας στην Java



Δήλωση διεπαφής ουράς

δημόσια διεπαφή Η ουρά επεκτείνει τη Συλλογή

Προχωρώντας με αυτό το άρθρο σχετικά με την ουρά προτεραιότητας στην Java

Μέθοδοι διασύνδεσης ουράς Java

Μέθοδος Περιγραφή

boolean προσθήκη (αντικείμενο)



Χρησιμοποιείται για να εισαγάγετε το καθορισμένο στοιχείο σε αυτήν την ουρά και να επιστρέψετε στην επιτυχία.

boolean προσφορά (αντικείμενο)

Χρησιμοποιείται για την εισαγωγή του καθορισμένου στοιχείου σε αυτήν την ουρά.

Αφαίρεση αντικειμένου ()

Χρησιμοποιείται για την ανάκτηση και την αφαίρεση της κεφαλής αυτής της ουράς.

Δημοσκόπηση αντικειμένου ()

Χρησιμοποιείται για την ανάκτηση και την αφαίρεση της κεφαλής αυτής της ουράς ή επιστρέφει null εάν αυτή η ουρά είναι κενή.

Στοιχείο αντικειμένου ()

Χρησιμοποιείται για την ανάκτηση, αλλά δεν αφαιρεί, το κεφάλι αυτής της ουράς.

Αντικείμενο αντικειμένου ()

Χρησιμοποιείται για την ανάκτηση, αλλά δεν καταργεί, την κεφαλή αυτής της ουράς ή επιστρέφει null εάν αυτή η ουρά είναι κενή.

Προχωρώντας με αυτό το άρθρο σχετικά με την ουρά προτεραιότητας στην 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 = νέο PriorityQueue (7) Random rand = new Random () for (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». Εάν θέλετε να μάθετε περισσότερα, ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία μάθησης. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για να σας εκπαιδεύσει τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

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