The Stack class is relatively simple. Its main foundation is to come out first. Note that Stack inherits from the Vector class. Therefore, its internal implementation basically calls the Vector method directly, which is less difficult.
Package java. util; public class Stack <E> extends Vector <E >{// No parameter constructor public Stack () {}/ *** Pushes an item onto the top of this stack. this has exactly * the same effect as: * addElement (item) */public E push (E item) {addElement (item); return item ;} /*** Removes the object at the top of this stack and returns that * object as the value of this function. */public synchronized E pop () {E obj; int len = size (); obj = peek (); removeElementAt (len-1); return obj ;} /*** Looks at the object at the top of this stack without removing it * from the stack. */public synchronized E peek () {int len = size (); if (len = 0) throw new EmptyStackException (); return elementAt (len-1 );} /*** Tests if this stack is empty. **/public boolean empty () {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. */public synchronized int search (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 = 1224464254541339165l ;}