class MaximumContainerProg {
public static void main (String [] args) {
MaximumContainer <Intxyz> mx = new MaximumContainer <Intxyz> (new Intxyz(4));
mx.print();
mx.put(new Intxyz(2));
mx.print();
mx.put(new Intxyz(3));
mx.print();
mx.put(new Intxyz(2));
mx.print();
mx.put(new Intxyz(2));
mx.print();
mx.put(new Intxyz(3));
mx.print();
mx.put(new Intxyz(5));
mx.print();
}
static class Intxyz implements Comparable {
int val;
Intxyz (int val) {
this.val = val;
}
@Override
public int compareTo (Object o) {
Intxyz i = (Intxyz) o;
if (this.val > i.val)
return 1;
else if (this.val < i.val)
return -1;
return 0;
}
@Override
public String toString () {
return Integer.toString(this.val);
}
}
public static class MaximumContainer <P extends Comparable> {
P val;
MaximumContainer (P val) {
this.val = val;
}
void put (P val) {
if (this.val.compareTo(val) < 0)
this.val = val;
}
P get () {
return this.val;
}
void print () {
System.out.println (val.toString());
}
}
}