Professional Documents
Culture Documents
Lab 8
Lab 8
1)
/*
File:StackDemoAL.java
user defined class for generic stack
*/
import java.util.*;
class stack<T extends Number> {
ArrayList<T> A;
int top=-1;
int size;
stack(int size) {
this.size=size;
A=new ArrayList<T>(size);
}
T pop() {
if(top==-1) {
System.out.println("Stack Underflow");
return null;
}
else {
T elt=A.get(top);
A.remove(top);
top--;
return elt;
}
}
}
class StackDemoAL {
public static void main(String args[]) {
final int size=5;
stack<Integer> iStk=new stack<Integer>(size);
iStk.push(10);
iStk.push(20);
iStk.push(30);
iStk.push(40);
iStk.push(50);
iStk.push(60);
System.out.println("Popped element:" + iStk.pop());
System.out.println("Popped element:" + iStk.pop());
System.out.println("Popped element:" + iStk.pop());
System.out.println("Popped element:" + iStk.pop());
System.out.println("Popped element:" + iStk.pop());
System.out.println("Popped element:" + iStk.pop());
dStk.push(10.56);
dStk.push(20.12);
dStk.push(30.23);
dStk.push(40.67);
dStk.push(50.12);
dStk.push(60.4);
OUTPUT:
javac StackDemoAL.java
$ java StackDemoAL
Stack Overflow
Popped element:50
Popped element:40
Popped element:30
Popped element:20
Popped element:10
Stack Underflow
Popped element:null
Stack Overflow
Popped element:50.12
Popped element:40.67
Popped element:30.23
Popped element:20.12
Popped element:10.56
Stack Underflow
Popped element:null
Stack Overflow
Popped element:Most
Popped element:You
Popped element:Are
Popped element:How
Popped element:Hello
Stack Underflow
Popped element:null
2)
/*
File : BoundsDemo.java
*/
// Demonstrate Stats.
class BoundsDemo {
public static void main(String args[]) {
Integer inums[] = { 1, 2, 3, 4, 5 };
Stats<Integer> iob = new Stats<Integer>(inums);
double v = iob.average();
System.out.println("iob average is " + v);
Double dnums[] = { 1.1, 2.2, 3.3, 4.4, 5.5 };
Stats<Double> dob = new Stats<Double>(dnums);
double w = dob.average();
System.out.println("dob average is " + w);
// This won't compile because String is not a
// subclass of Number.
// String strs[] = { "1", "2", "3", "4", "5" };
// Stats<String> strob = new Stats<String>(strs);
// double x = strob.average();
// System.out.println("strob average is " + v);
}
}
OUTPUT:
$ javac BoundsDemo.java
$ java BoundsDemo
iob average is 3.0
dob average is 3.3
3)
/*
File : SimpGen.java
*/
// parameters: T and V.
class TwoGen<T, V> {
T ob1;
V ob2;
T getob1() {
return ob1;
}
V getob2() {
return ob2;
}
}
// Demonstrate TwoGen.
class SimpGen {
public static void main(String args[]) {
TwoGen<Integer, String> tgObj = new TwoGen<Integer, String>(88, "Generics");
OUTPUT:
$ javac SimpGen.java
$ java SimpGen
Type of T is java.lang.Integer
Type of V is java.lang.String
value: 88
value: Generics
4)
/*
File : WildcardDemo.java
Use a wildcard.
*/
// Demonstrate wildcard.
class WildcardDemo {
public static void main(String args[]) {
Integer inums[] = { 1, 2, 3, 4, 5 };
Stats<Integer> iob = new Stats<Integer>(inums);
double v = iob.average();
System.out.println("iob average is " + v);
Double dnums[] = { 1.1, 2.2, 3.3, 4.4, 5.5 };
Stats<Double> dob = new Stats<Double>(dnums);
double w = dob.average();
System.out.println("dob average is " + w);
Float fnums[] = { 1.0F, 2.0F, 3.0F, 4.0F, 5.0F };
Stats<Float> fob = new Stats<Float>(fnums);
double x = fob.average();
System.out.println("fob average is " + x);
// See which arrays have same average.
System.out.print("Averages of iob and dob ");
if(iob.sameAvg(dob))
System.out.println("are the same.");
else
System.out.println("differ.");
System.out.print("Averages of iob and fob ");
if(iob.sameAvg(fob))
System.out.println("are the same.");
else
System.out.println("differ.");
}
}
OUTPUT:
$ javac WildcardDemo.java
$java WildcardDemo
5)
OUTPUT: