//ArrayMinMax.java
//A generic class that implements the generic interface GenericMinMax<T>

public class ArrayMinMax<T extends Comparable<T>> implements GenericMinMax<T>
{
    private T[] values;

    public ArrayMinMax(T[] o)
    {
        values = o;
    }

    //Return the minimum value in values.
    public T min()
    {
        T v = values[0];
        for (int i = 1; i < values.length; i++)
        {
            if (values[i].compareTo(v) < 0)
            {
                v = values[i];
            }
        }
        return v;
    }

    //Return the maximum value in values.
    public T max()
    {
        T v = values[0];

        for (int i = 1; i < values.length; i++)
        {
            if (values[i].compareTo(v) > 0)
            {
                v = values[i];
            }
        }
        return v;
    }
}
