Διεπαφή ουράς Java

Σε αυτό το σεμινάριο, θα μάθουμε για τη διεπαφή 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λεπτομερώς για διαφορετικά υποεπιφάνεια της διεπαφής και την εφαρμογή της λεπτομερώς.

ενδιαφέροντα άρθρα...