Java Deque

Σε αυτό το σεμινάριο, θα μάθουμε για τη διασύνδεση Deque, τον τρόπο χρήσης και τις μεθόδους της.

Η Dequeδιεπαφή του πλαισίου συλλογών Java παρέχει τη λειτουργικότητα μιας ουράς διπλού άκρου. Επεκτείνει τη Queueδιεπαφή.

Εργασία του Ντεκ

Σε μια κανονική ουρά, τα στοιχεία προστίθενται από πίσω και αφαιρούνται από μπροστά. Ωστόσο, σε ένα deque, μπορούμε να εισάγουμε και να αφαιρέσουμε στοιχεία από το μπροστινό και το πίσω μέρος .

Μαθήματα που εφαρμόζουν το Deque

Για να χρησιμοποιήσουμε τις λειτουργίες της Dequeδιεπαφής, πρέπει να χρησιμοποιήσουμε κλάσεις που την εφαρμόζουν:

  • ArrayDeque
  • Συνδεδεμένη λίστα

Πώς να χρησιμοποιήσετε το Deque;

Στην Java, πρέπει να εισαγάγουμε το java.util.Dequeπακέτο για χρήση Deque.

 // Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList(); 

Εδώ, δημιουργήσαμε αντικείμενα animal1 και animal2 των τάξεων ArrayDeque και LinkedList, αντίστοιχα. Αυτά τα αντικείμενα μπορούν να χρησιμοποιήσουν τις λειτουργίες της Dequeδιεπαφής.

Μέθοδοι Deque

Δεδομένου ότι Dequeεπεκτείνει τη Queueδιεπαφή, κληρονομεί όλες τις μεθόδους της διεπαφής ουράς.

Εκτός από τις διαθέσιμες μεθόδους στη Queueδιεπαφή, η Dequeδιεπαφή περιλαμβάνει επίσης τις ακόλουθες μεθόδους:

  • addFirst () - Προσθέτει το καθορισμένο στοιχείο στην αρχή του deque. Ρίχνει μια εξαίρεση εάν το deque είναι γεμάτο.
  • addLast () - Προσθέτει το καθορισμένο στοιχείο στο τέλος του deque. Ρίχνει μια εξαίρεση εάν το deque είναι γεμάτο.
  • offerFirst () - Προσθέτει το καθορισμένο στοιχείο στην αρχή του deque. Επιστρέφει falseεάν το deque είναι γεμάτο.
  • offerLast () - Προσθέτει το καθορισμένο στοιχείο στο τέλος του deque. Επιστρέφει falseεάν το deque είναι γεμάτο.
  • getFirst () - Επιστρέφει το πρώτο στοιχείο της deque. Ρίχνει μια εξαίρεση εάν το deque είναι κενό.
  • getLast () - Επιστρέφει το τελευταίο στοιχείο του deque. Ρίχνει μια εξαίρεση εάν το deque είναι κενό.
  • peekFirst () - Επιστρέφει το πρώτο στοιχείο του deque. Επιστρέφει nullεάν το deque είναι κενό.
  • peekLast () - Επιστρέφει το τελευταίο στοιχείο του deque. Επιστρέφει nullεάν το deque είναι κενό.
  • removeFirst () - Επιστρέφει και αφαιρεί το πρώτο στοιχείο του deque. Ρίχνει μια εξαίρεση εάν το deque είναι κενό.
  • removeLast () - Επιστρέφει και αφαιρεί το τελευταίο στοιχείο του deque. Ρίχνει μια εξαίρεση εάν το deque είναι κενό.
  • pollFirst () - Επιστρέφει και αφαιρεί το πρώτο στοιχείο του deque. Επιστρέφει nullεάν το deque είναι κενό.
  • pollLast () - Επιστρέφει και αφαιρεί το τελευταίο στοιχείο του deque. Επιστρέφει nullεάν το deque είναι κενό.

Deque ως Stack Data Structure

Η Stackκλάση του Collectionsπλαισίου Java παρέχει την υλοποίηση της στοίβας.

Ωστόσο, συνιστάται η χρήση Dequeως στοίβα αντί για την κατηγορία Stack. Είναι επειδή οι μέθοδοι Stackείναι συγχρονισμένες.

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

  • push() - προσθέτει ένα στοιχείο στην αρχή του deque
  • pop() - αφαιρεί ένα στοιχείο από την αρχή του deque
  • peek() - επιστρέφει ένα στοιχείο από την αρχή του deque

Υλοποίηση του Deque στην κατηγορία ArrayDeque

 import java.util.Deque; import java.util.ArrayDeque; class Main ( public static void main(String() args) ( // Creating Deque using the ArrayDeque class Deque numbers = new ArrayDeque(); // add elements to the Deque numbers.offer(1); numbers.offerLast(2); numbers.offerFirst(3); System.out.println("Deque: " + numbers); // Access elements of the Deque int firstElement = numbers.peekFirst(); System.out.println("First Element: " + firstElement); int lastElement = numbers.peekLast(); System.out.println("Last Element: " + lastElement); // Remove elements from the Deque int removedNumber1 = numbers.pollFirst(); System.out.println("Removed First Element: " + removedNumber1); int removedNumber2 = numbers.pollLast(); System.out.println("Removed Last Element: " + removedNumber2); System.out.println("Updated Deque: " + numbers); ) ) 

Παραγωγή

 Deque: (3, 1, 2) Πρώτο στοιχείο: 3 Τελευταίο στοιχείο: 2 Καταργήθηκε το πρώτο στοιχείο: 3 Καταργήθηκε το τελευταίο στοιχείο: 2 Ενημερώθηκε Deque: (1) 

Για να μάθετε περισσότερα, επισκεφθείτε το Java ArrayDeque.

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