Σε αυτό το σεμινάριο, θα μάθουμε για τη διεπαφή Java Queue και τις μεθόδους της.
Η Queue
διεπαφή του πλαισίου συλλογών Java παρέχει τη λειτουργικότητα της δομής δεδομένων ουράς. Επεκτείνει τη Collection
διεπαφή.
Μαθήματα που εφαρμόζουν ουρά
Δεδομένου ότι Queue
είναι μια διεπαφή, δεν μπορούμε να παρέχουμε την άμεση εφαρμογή της.
Για να χρησιμοποιήσουμε τις λειτουργίες του Queue
, πρέπει να χρησιμοποιήσουμε τάξεις που την εφαρμόζουν:
- ArrayDeque
- Συνδεδεμένη λίστα
- ΠροτεραιότηταQueue
Διεπαφές που επεκτείνουν την ουρά
Η Queue
διεπαφή επεκτείνεται επίσης από διάφορα υποσυνδέσεις:
Deque
BlockingQueue
BlockingDeque
Εργασία δομής δεδομένων ουράς
Στις ουρές, τα στοιχεία αποθηκεύονται και προσπελάζονται με τρόπο First In, First Out . Δηλαδή, στοιχεία προστίθενται από πίσω και αφαιρούνται από το μέτωπο .
Πώς να χρησιμοποιήσετε την ουρά;
Στην Java, πρέπει να εισαγάγουμε java.util.Queue
πακέτο για να το χρησιμοποιήσουμε Queue
.
// LinkedList implementation of Queue Queue animal1 = new LinkedList(); // Array implementation of Queue Queue animal2 = new ArrayDeque(); // Priority Queue implementation of Queue Queue animal 3 = new PriorityQueue();
Εδώ, έχουμε δημιουργήσει αντικείμενα animal1, animal2 και animal3 των τάξεων LinkedList
, ArrayDeque
και PriorityQueue
αντίστοιχα. Αυτά τα αντικείμενα μπορούν να χρησιμοποιήσουν τις λειτουργίες της Queue
διεπαφής.
Μέθοδοι ουράς
Η Queue
διεπαφή περιλαμβάνει όλες τις μεθόδους της Collection
διεπαφής. Είναι επειδή Collection
είναι το σούπερ διασύνδεση του Queue
.
Μερικές από τις κοινώς χρησιμοποιούμενες μεθόδους της Queue
διεπαφής είναι:
- add () - Εισάγει το καθορισμένο στοιχείο στην ουρά. Εάν η εργασία είναι επιτυχής,
add()
επιστρέφειtrue
, εάν όχι, ρίχνει μια εξαίρεση. - προσφορά () - Εισάγει το καθορισμένο στοιχείο στην ουρά. Εάν η εργασία είναι επιτυχής,
offer()
επιστρέφειtrue
, αν όχι επιστρέφειfalse
. - element () - Επιστρέφει την κεφαλή της ουράς. Ρίχνει μια εξαίρεση εάν η ουρά είναι κενή.
- peek () - Επιστρέφει το κεφάλι της ουράς. Επιστρέφει
null
εάν η ουρά είναι κενή. - remove () - Επιστρέφει και αφαιρεί την κεφαλή της ουράς. Ρίχνει μια εξαίρεση εάν η ουρά είναι κενή.
- poll () - Επιστρέφει και αφαιρεί την κεφαλή της ουράς. Επιστρέφει
null
εάν η ουρά είναι κενή.
Εφαρμογή της διεπαφής ουράς
1. Εφαρμογή της κλάσης LinkedList
import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // offer elements to the Queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Παραγωγή
Ουρά: (1, 2, 3) Στοιχείο πρόσβασης: 1 Στοιχείο που αφαιρέθηκε: 1 Ενημερωμένη ουρά: (2, 3)
Για να μάθετε περισσότερα, επισκεφθείτε τη Java LinkedList.
2. Εφαρμογή της κατηγορίας PriorityQueue
import java.util.Queue; import java.util.PriorityQueue; class Main ( public static void main(String() args) ( // Creating Queue using the PriorityQueue class Queue numbers = new PriorityQueue(); // offer elements to the Queue numbers.offer(5); numbers.offer(1); numbers.offer(2); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Παραγωγή
Ουρά: (1, 5, 2) Στοιχείο πρόσβασης: 1 Στοιχείο που αφαιρέθηκε: 1 Ενημερωμένη ουρά: (2, 5)
Για να μάθετε περισσότερα, επισκεφθείτε το Java PriorityQueue.
Στα επόμενα μαθήματα, θα μάθουμε Queue
λεπτομερώς για διαφορετικά υποεπιφάνεια της διεπαφής και την εφαρμογή της λεπτομερώς.