16.1.3 | Stack |
Die Klasse Stack repräsentiert einen Stapelspeicher. Beim Anlegen eines Stacks wird seine Größe mit null initialisiert:Stack MyStack = new Stack();Man besitzt die Möglichkeit,
Folgendes Beispiel zur Klasse Stack liest eine beliebige Anzahl von Zeilen ein und gibt diese in umgekehrter Reihenfolge wieder aus:import java.util.Stack; import java.io.*; public class StackDemo { public static void main(String args[]) { BufferedReader stdin = new BufferedReader( new InputStreamReader(System.in)); PrintWriter stdout = new PrintWriter(System.out,true); Stack s = new Stack(); // Neuer Stack String text = ""; // So lange Zeilen einlesen und dem Stack zufügen, // bis 'stop' eingegeben wird do { try { text = stdin.readLine(); // Zeile einlesen und s.push(text); // auf dem Stack speichern } catch (IOException e) { stdout.println("Error: "+e); } } while(! (text.equals("stop"))); // Alle Zeilen vom Stack entfernen und ausgeben while (! s.empty()) stdout.println(s.pop()); } }Nachdem eine Zeile eingegeben wurde, wird sie oben auf den Stack gepackt:s.push(text); // auf dem Stack speichernDieser Vorgang wird so lange wiederholt, bis eine Eingabe nur das Wort »stop« enthält. Danach werden alle Elemente vom Stack entfernt und auf der Standardausgabe ausgegeben.// Alle Zeilen vom Stack entfernen und ausgeben while (! s.empty()) stdout.println(s.pop());