Stacks       Stack extends from Vector of java.util

I. Introduction

/**
The Java.util package contains the class  Vector which conatins the 
class Stack. That is the class Stack inherites the class Vector. In 
Java literature, we write: 
public class java.util.Stack extends java.util.Vector{constructors, methods, coding, ...}
Forethermore, all the method of the class Vector can be used by 
the class Stack:
public Stack(); (the empty constructor)
public boolean empty(); (Is the pile empty?)
public Object peek(); (Checks the object at the top of the pile)
public Object pop(); (pops up the object from the top of the pile)
public Object push (Object AnItem); (puts an item at the top of the pile)
public int search (Object AnObject); ( returns the rank of the object AnObject starting 
from the top of the pile)

In this example:
println (ThePile); will print all theelement of the pile ThePile. It uses toString() 
method from the super class Vector (the method toString() doesn't exist in Stack class)
size(); comes from Vector class
push.(Object AnItem) comes from addElement of the Vector class 
	public Object push (Object AnItem){
	addElement(AnItem);
	return AnItem;
	}
	
Stack inherits (extends) from Vector.
*/
II. The program


import java.util.*;// package containing Vector class, then Stack class

public class TheStack {

static void ToPile (Stack ThePile, String [] TheWeek) {//fil out the pile
//Castinh here with  in order to avoid deprecation : Compile with -Xlint option.
	for (int k = 0; k < TheWeek.length ; k++){
	ThePile.push(TheWeek[k]);
	}
}

static void Display (Stack ThePile, String info){
if(ThePile.empty())
System.out.println("\n\t" +info + ", the pile is empty. Its sise is: " + ThePile.size());
	else { 
	System.out.println(info + " , the pile contains : \n\t" + ThePile + "\n");
	}
}

public static void main (String [] args) {

	String [] TheWeek = {//An array of the seven days of the week
	new String ("Sunday"), 
	new String ("Monday"), 
	new String ("Tuesday"), 
	new String ("Wednesday"), 
	new String ("Thursday"), 
	new String ("Friday"), 
	new String ("Saturday")};

	System.out.println("\n\tHi!, The last in, the first out");

	Stack ThePile = new Stack();

	Display (ThePile, "At first");// The pile is empty

ToPile (ThePile, TheWeek);//Filling out ThePile with the elements of TheWeek, and display and give its size.
Display (ThePile, "\n\tAfter piling 7 days");
System.out.println ("\tThe size of the pile is " + ThePile.size());
System.out.println ("\n\tThe number of days from Wednesday " + ThePile.search(TheWeek[2]));
System.out.println ("\n\tThe first element at the top of the pile is " + ThePile.peek());
System.out.println ("\n\tWe pop up  the top of the pile, which is " + ThePile.pop());
System.out.println ("\n\tThe size of the pile is then " + ThePile.size());
System.out.println ("\n\tThe first element at the top of the pile is then " + ThePile.peek()+ "\n");

}

}//End of class TheStack



/*
III. Execution:

C:\Java>javac -Xlint TheStack.java
C:\Java>java TheStack
        Hi!, The last in, the first out
        At first, the pile is empty. Its sise is: 0
        After piling 7 days , the pile contains :
        [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
        The size of the pile is 7
        The number of days from Wednesday 5
        The first element at the top of the pile is Saturday
        We pop up  the top of the pile, which is Saturday
        The size of the pile is then 6
        The first element at the top of the pile is then Friday
C:Java>
/*