Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java Stack-klasse: Uitgebreide handleiding voor gebruik en methoden

Java Stack-klasse

Deze tutorial legt Java's Stack-klasse uit, de kernmethoden en praktische voorbeelden om stack-operaties te beheersen.

Het Java Collections Framework bevat een Stack-klasse die de klassieke stack-datastructuur implementeert. Volgens de officiële Java-documentatie extends Stack de Vector-klasse, waardoor alle methoden geërfd worden en stack-specifieke operaties worden toegevoegd.

Java Stack-klasse: Uitgebreide handleiding voor gebruik en methoden


Stack-implementatie

Een stack volgt het Last In, First Out (LIFO)-principe: elementen worden bovenop geduwd (push) en bovenop afgehaald (pop). Het volgende diagram illustreert dit gedrag.

Java Stack-klasse: Uitgebreide handleiding voor gebruik en methoden


Een Stack aanmaken

Om een stack aan te maken, importeer java.util.Stack en instantieer het met het gewenste generieke type:

Stack<Type> stack = new Stack<>();

Voorbeelden:

// Integer stack Stack<Integer> intStack = new Stack<>(); // String stack Stack<String> stringStack = new Stack<>();

Stack-methoden

Naast de geërfde Vector-methoden biedt Stack vijf speciale operaties die het onderscheiden van generieke collecties. Voor een volledige lijst van Vector-methoden, raadpleeg de Vector-klassedocumentatie.


push()-methode

De push()-methode voegt een element toe aan de top van de stack.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); } }

Output

Stack: [Dog, Horse, Cat]

pop()-methode

De pop()-methode verwijdert en retourneert het element aan de top van de stack.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Initiële Stack: " + animals); String removed = animals.pop(); System.out.println("Verwijderd element: " + removed); } }

Output

Initiële Stack: [Dog, Horse, Cat] Verwijderd element: Cat

peek()-methode

De peek()-methode haalt het top-element op zonder het te verwijderen.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); String top = animals.peek(); System.out.println("Element bovenaan: " + top); } }

Output

Stack: [Dog, Horse, Cat] Element bovenaan: Cat

De search()-methode retourneert de 1-gebaseerde positie van een element vanaf de top van de stack, of -1 als het niet aanwezig is.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); int pos = animals.search("Horse"); System.out.println("Positie van Horse: " + pos); } }

Output

Stack: [Dog, Horse, Cat] Positie van Horse: 2

empty()-methode

De empty()-methode controleert of de stack elementen bevat.

import java.util.Stack; class Main { public static void main(String[] args) { Stack<String> animals = new Stack<>(); animals.push("Dog"); animals.push("Horse"); animals.push("Cat"); System.out.println("Stack: " + animals); boolean isEmpty = animals.empty(); System.out.println("Is de stack leeg? " + isEmpty); } }

Output

Stack: [Dog, Horse, Cat] Is de stack leeg? false

ArrayDeque gebruiken in plaats van Stack

Hoewel Stack een stack implementeert, wordt het als legacy beschouwd. Moderne Java-code kiest voor ArrayDeque (implementerend de Deque-interface) voor stack-functionaliteit omdat het betere prestaties en duidelijke semantiek biedt. Zie voor meer details:


Java

  1. Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
  2. Java instanceof operator: een uitgebreide gids
  3. Java-erfenis meesteren: concepten, typen en praktische voorbeelden
  4. Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
  5. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  6. Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
  7. Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
  8. Java ArrayList meesteren: operaties, methoden en best practices
  9. Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
  10. Java Generics: Herbruikbare, type-veilige code bouwen
  11. Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen