Σε αυτό το σεμινάριο, θα μάθουμε για την τάξη Java Stack και τις μεθόδους της με τη βοήθεια παραδειγμάτων.
Το πλαίσιο συλλογών Java έχει μια κλάση που ονομάζεται Stack
που παρέχει τη λειτουργικότητα της δομής δεδομένων στοίβας.
Η Stack
τάξη επεκτείνει την Vector
τάξη.
Εφαρμογή στοίβας
Στη στοίβα, τα στοιχεία αποθηκεύονται και προσπελάζονται με τρόπο Last In First Out . Δηλαδή, στοιχεία προστίθενται στην κορυφή της στοίβας και αφαιρούνται από την κορυφή της στοίβας.
Δημιουργία στοίβας
Για να δημιουργήσουμε μια στοίβα, πρέπει java.util.Stack
πρώτα να εισαγάγουμε το πακέτο. Μόλις εισαγάγουμε το πακέτο, εδώ είναι πώς μπορούμε να δημιουργήσουμε μια στοίβα στην Java.
Stack stacks = new Stack();
Εδώ, Type
υποδεικνύει τον τύπο της στοίβας. Για παράδειγμα,
// Create Integer type stack Stack stacks = new Stack(); // Create String type stack Stack stacks = new Stack();
Μέθοδοι στοίβας
Εφόσον Stack
επεκτείνει την Vector
τάξη, κληρονομεί όλες τις μεθόδους Vector
. Για να μάθετε για διάφορες Vector
μεθόδους, επισκεφθείτε την Java Vector Class.
Εκτός από αυτές τις μεθόδους, η Stack
τάξη περιλαμβάνει 5 ακόμη μεθόδους που την ξεχωρίζουν Vector
.
push () Μέθοδος
Για να προσθέσουμε ένα στοιχείο στην κορυφή της στοίβας, χρησιμοποιούμε τη push()
μέθοδο. Για παράδειγμα,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); ) )
Παραγωγή
Στοίβα: (Σκύλος, Άλογο, Γάτα)
pop () Μέθοδος
Για να αφαιρέσουμε ένα στοιχείο από την κορυφή της στοίβας, χρησιμοποιούμε τη pop()
μέθοδο. Για παράδειγμα,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Initial Stack: " + animals); // Remove element stacks String element = animals.pop(); System.out.println("Removed Element: " + element); ) )
Παραγωγή
Αρχική στοίβα: (Σκύλος, άλογο, γάτα) Στοιχείο που αφαιρέθηκε: Γάτα
peek () Μέθοδος
Η peek()
μέθοδος επιστρέφει ένα αντικείμενο από την κορυφή της στοίβας. Για παράδειγμα,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Access element from the top String element = animals.peek(); System.out.println("Element at top: " + element); ) )
Παραγωγή
Στοίβα: (Σκύλος, Άλογο, Γάτα) Στοιχείο στην κορυφή: Γάτα
αναζήτηση () Μέθοδος
Για αναζήτηση ενός στοιχείου στη στοίβα, χρησιμοποιούμε τη search()
μέθοδο. Επιστρέφει τη θέση του στοιχείου από την κορυφή της στοίβας. Για παράδειγμα,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Search an element int position = animals.search("Horse"); System.out.println("Position of Horse: " + position); ) )
Παραγωγή
Στοίβα: (Σκύλος, Άλογο, Γάτα) Θέση του αλόγου: 2
κενό () Μέθοδος
Για να ελέγξουμε εάν μια στοίβα είναι κενή ή όχι, χρησιμοποιούμε τη empty()
μέθοδο. Για παράδειγμα,
import java.util.Stack; class Main ( public static void main(String() args) ( Stack animals= new Stack(); // Add elements to Stack animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); // Check if stack is empty boolean result = animals.empty(); System.out.println("Is the stack empty? " + result); ) )
Παραγωγή
Στοίβα: (Σκύλος, Άλογο, Γάτα) Είναι η στοίβα άδεια; ψευδής
Χρησιμοποιήστε το ArrayDeque αντί για στοίβα
Η Stack
τάξη παρέχει την άμεση εφαρμογή της δομής δεδομένων στοίβας. Ωστόσο, συνιστάται να μην το χρησιμοποιείτε. Αντ 'αυτού, χρησιμοποιήστε την ArrayDeque
κλάση (εφαρμόζει τη Deque
διεπαφή) για να εφαρμόσετε τη δομή δεδομένων στοίβας σε Java.
Για να μάθετε περισσότερα, επισκεφθείτε:
- Java ArrayDeque
- Γιατί να χρησιμοποιήσετε το Deque over Stack;