/media/sda-magnetic/david/Extern-Magnetic-2022-06-29/Extern01/Dokumente-2021-05-8/disk10-ab-2020-01-10/02-debian-pc2-work/informatik/java-new/2020-11-23/MaximumContainerProg.java


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());
        }
    
    }

}