packagejava.util;/*** The Stack
class represents a last-in-first-out
* (LIFO) stack of objects. It extends class Vector with five
* operations that allow a vector to be treated as a stack. The usual
* push and pop operations are provided, as well as a
* method to peek at the top item on the stack, a method to test
* for whether the stack is empty, and a method to search
* the stack for an item and discover how far it is from the top.
*
* When a stack is first created, it contains no items.
*
*
A more complete and consistent set of LIFO stack operations is
* provided by the {@linkDeque} interface and its implementations, which
* should be used in preference to this class. For example:
*
{@code* Deque stack = new ArrayDeque();}
*
*@authorJonathan Payne
*@sinceJDK1.0*/
public
class Stack extends Vector{/*** Creates an empty Stack.*/
publicStack() {
}/*** Pushes an item onto the top of this stack. This has exactly
* the same effect as:
*
* addElement(item)
*
*@paramitem the item to be pushed onto this stack.
*@returnthe item
argument.
*@seejava.util.Vector#addElement*/
publicE push(E item) {
addElement(item);returnitem;
}/*** Removes the object at the top of this stack and returns that
* object as the value of this function.
*
*@returnThe object at the top of this stack (the last item
* of the Vector object).
*@throwsEmptyStackException if this stack is empty.*/
public synchronizedE pop() {
E obj;int len =size();
obj=peek();
removeElementAt(len- 1);returnobj;
}/*** Looks at the object at the top of this stack without removing it
* from the stack.
*
*@returnthe object at the top of this stack (the last item
* of the Vector object).
*@throwsEmptyStackException if this stack is empty.*/
public synchronizedE peek() {int len =size();if (len == 0)throw newEmptyStackException();return elementAt(len - 1);
}/*** Tests if this stack is empty.
*
*@returntrue
if and only if this stack contains
* no items; false
otherwise.*/
public booleanempty() {return size() == 0;
}/*** Returns the 1-based position where an object is on this stack.
* If the object o occurs as an item in this stack, this
* method returns the distance from the top of the stack of the
* occurrence nearest the top of the stack; the topmost item on the
* stack is considered to be at distance 1. The equals
* method is used to compare o to the
* items in this stack.
*
*@paramo the desired object.
*@returnthe 1-based position from the top of the stack where
* the object is located; the return value -1
* indicates that the object is not on the stack.*/
public synchronized intsearch(Object o) {int i =lastIndexOf(o);if (i >= 0) {return size() -i;
}return -1;
}/**use serialVersionUID from JDK 1.0.2 for interoperability*/
private static final long serialVersionUID = 1224463164541339165L;
}