Stack is a subclass of Vector that implements a standard last-in, first-out stack. Stack only defines the default constructor, which creates an empty stack. With the release of JDK 5, Stack was retrofitted for generics and is declared as shown here:
class Stack<E>
Here, E specifies the type of element stored in the stack.
To put an object on the top of the stack, call push( ). To remove and return the top element, call pop( ). An EmptyStackException is thrown if you call pop( ) when the invoking stack is empty. You can use peek( ) to return, but not remove, the top object. The empty( ) method returns true if nothing is on the stack. The search( ) method determines whether an object exists on the stack and returns the number of pops that are required to bring it to the top of
Method | Description | ||
boolean empty( ) | Returns true if the stack is empty, and returns false if the stack | ||
contains elements. | |||
E peek( ) | Returns the element on the top of the stack, but does not remove it. | ||
E pop( ) | Returns the element on the top of the stack, removing it in the | ||
process. | |||
E push(E element) | Pushes element onto the stack. element is also returned. | ||
int search(Object element) | Searches for element in the stack. If found, its offset from the top | ||
of the stack is returned. Otherwise, –1 is returned. |
Demonstrate the Stack class
import java.util.*;
class StackDemo {
static void showpush(Stack<Integer> st, int a) { st.push(a);
System.out.println("push(" + a + ")"); System.out.println("stack: " + st);
}
static void showpop(Stack<Integer> st) { System.out.print("pop -> "); Integer a = st.pop(); System.out.println(a); System.out.println("stack: " + st);
}
public static void main(String args[]) { Stack<Integer> st = new Stack<Integer>();
System.out.println("stack: " + st); showpush(st, 42);
showpush(st, 66); showpush(st, 99); showpop(st); showpop(st); showpop(st);
try { showpop(st);
} catch (EmptyStackException e) { System.out.println("empty stack");
}
}
}