// file: StackFromVector.java // author: keller // purpose: making a Stack from a Vector using inheritance import java.io.*; import java.util.Vector; class StackFromVector extends Vector { int number = 0; // number of elements in Stack // constructor StackFromVector() { } // Note: methods size(), addElement(Object), elementAt(int), and // setElementAt(Object, int) are inherited from the base class Vector // isEmpty() can not be redefined for Stack, since it is a final method of // Vector. Therefore we define isEmptyStack() instead. However, one should // be careful not to use isEmpty() to test whether the Stack is empty; it // tests whether the underlying Vector is, which is a different issue. // push an item void push(Object ob) { if( number >= size() ) addElement(ob); else setElementAt(ob, number); number++; } // pop an item Object pop() { return elementAt(--number); } // test if empty boolean isEmptyStack() { return number == 0; } public static void main(String arg[]) { int size = 100; StackFromVector S = new StackFromVector(); for( int i = 0; i < size; i++ ) { S.push(new Integer(i*i)); } while( !S.isEmptyStack() ) { System.out.print(S.pop() + " "); } System.out.println(); } }