FileDocCategorySizeDatePackage
Stack.javaAPI DocJava SE 6 API3754Tue Jun 10 00:25:54 BST 2008java.util

Stack

public class Stack extends Vector
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 {@link Deque} interface and its implementations, which should be used in preference to this class. For example:

 {@code
Deque stack = new ArrayDeque();}
author
Jonathan Payne
version
1.30, 11/17/05
since
JDK1.0

Fields Summary
private static final long
serialVersionUID
use serialVersionUID from JDK 1.0.2 for interoperability
Constructors Summary
public Stack()
Creates an empty Stack.

    
Methods Summary
public booleanempty()
Tests if this stack is empty.

return
true if and only if this stack contains no items; false otherwise.

	return size() == 0;
    
public synchronized Epeek()
Looks at the object at the top of this stack without removing it from the stack.

return
the object at the top of this stack (the last item of the Vector object).
exception
EmptyStackException if this stack is empty.

	int	len = size();

	if (len == 0)
	    throw new EmptyStackException();
	return elementAt(len - 1);
    
public synchronized Epop()
Removes the object at the top of this stack and returns that object as the value of this function.

return
The object at the top of this stack (the last item of the Vector object).
exception
EmptyStackException if this stack is empty.

	E	obj;
	int	len = size();

	obj = peek();
	removeElementAt(len - 1);

	return obj;
    
public Epush(E item)
Pushes an item onto the top of this stack. This has exactly the same effect as:
addElement(item)

param
item the item to be pushed onto this stack.
return
the item argument.
see
java.util.Vector#addElement

	addElement(item);

	return item;
    
public synchronized intsearch(java.lang.Object o)
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.

param
o the desired object.
return
the 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.

	int i = lastIndexOf(o);

	if (i >= 0) {
	    return size() - i;
	}
	return -1;