From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/html/k100093.html | 247 +++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/html/k100093.html (limited to 'Master/Reference Architectures and Patterns/hjp5/html/k100093.html') diff --git a/Master/Reference Architectures and Patterns/hjp5/html/k100093.html b/Master/Reference Architectures and Patterns/hjp5/html/k100093.html new file mode 100644 index 0000000..43bf624 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/html/k100093.html @@ -0,0 +1,247 @@ + + + +Handbuch der Java-Programmierung, 5. Auflage + + + + + + + + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage +
 <<  +  <   +  >   + >>  + API  +Kapitel 14 - Collections I +
+
+ + + + +

14.3 Die Klasse Stack

+
+ +
+ +

+Ein Stack ist eine Datenstruktur, die nach dem LIFO-Prinzip +(last-in-first-out) arbeitet. Die Elemente werden am vorderen Ende +der Liste eingefügt und von dort auch wieder entnommen. Das heißt, +die zuletzt eingefügten Elemente werden zuerst entnommen und +die zuerst eingefügten zuletzt. + +

+In Java ist ein Stack +eine Ableitung eines Vektors, der um neue Zugriffsfunktionen erweitert +wurde, um das typische Verhalten eines Stacks zu implementieren. Obwohl +dies eine ökonomische Vorgehensweise ist, bedeutet es, dass ein +Stack +alle Methoden eines Vektors erbt und damit auch wie ein Vektor verwendet +werden kann. Wir wollen diese Tatsache hier ignorieren und uns mit +den spezifischen Eigenschaften eines Stacks beschäftigen. + +

+Der Konstruktor der Klasse Stack +ist parameterlos: +

+ + + + + +
+ +
+public Stack()
+
+
+
+java.util.Stack
+ +

+Das Anfügen neuer Elemente wird durch einen Aufruf der Methode +push +erledigt und erfolgt wie üblich am oberen Ende des Stacks. Die +Methode liefert als Rückgabewert das eingefügte Objekt: +

+ + + + + +
+ +
+public Object push(Object item)
+
+
+
+java.util.Stack
+ +

+Der Zugriff auf das oberste Element kann mit einer der Methoden pop +oder peek +erfolgen. Beide liefern das oberste Element des Stacks, pop +entfernt es anschließend vom Stack: +

+ + + + + +
+ +
+public Object pop()
+
+public Object peek()
+
+
+
+java.util.Stack
+ +

+Des weiteren gibt es eine Methode empty, +um festzustellen, ob der Stack +leer ist, und eine Methode search, +die nach einem beliebigen Element sucht und als Rückgabewert +die Distanz zwischen gefundenem Element und oberstem Stack-Element +angibt: +

+ + + + + +
+ +
+public boolean empty()
+
+public int search(Object o)
+
+
+
+java.util.Stack
+ +

+Das folgende Beispiel verdeutlicht die Anwendung eines Stacks: + + +

+ + + + + +
+ +
+001 /* Listing1402.java */
+002 
+003 import java.util.*;
+004 
+005 public class Listing1402
+006 {
+007   public static void main(String[] args)
+008   {
+009     Stack s = new Stack();
+010 
+011     s.push("Erstes Element");
+012     s.push("Zweites Element");
+013     s.push("Drittes Element");
+014     while (true) {
+015       try {
+016         System.out.println(s.pop());
+017       } catch (EmptyStackException e) {
+018         break;
+019       }
+020     }
+021   }
+022 }
+
+
+Listing1402.java
+ +Listing 14.2: Anwendung eines Stacks

+ +

+Das Programm erzeugt einen Stack +und fügt die Werte »Erstes Element«, »Zweites +Element« und »Drittes Element« ein. Anschließend +entfernt es so lange Elemente aus dem Stack, bis die Ausgabeschleife +durch eine Ausnahme des Typs EmptyStackException +beendet wird. Durch die Arbeitsweise des Stack +werden die Elemente in der umgekehrten Eingabereihenfolge auf dem +Bildschirm ausgegeben: + +

+Drittes Element
+Zweites Element
+Erstes Element
+
+ +

+ + + + + + + + + + + +
+ +

+Mit dem JDK 6 wurde das Interface java.util.Deque +eingeführt, welches beispielsweise von der Klasse LinkedList +implementiert wird und die gleichen Operationen wie ein Stack anbietet. +Dieses Interface wird in Abschnitt 15.2 +aufgeführt wird.

+ + + + +
 JDK1.1-6.0 
+
+


+ + + +
 Titel  + Inhalt  + Suchen  + Index  + DOC  +Handbuch der Java-Programmierung, 5. Auflage, Addison +Wesley, Version 5.0.1 +
 <<  +  <   +  >   + >>  + API  +© 1998, 2007 Guido Krüger & Thomas +Stark, http://www.javabuch.de +
+ + + -- cgit v1.2.3