Generic Interfaces

interface MinMax<T extends Comparable<T>> {
  T min();

  T max();
}

class MyClass<T extends Comparable<T>> implements MinMax<T> {
  T[] vals;

  MyClass(T[] o) {
    vals = o;
  }

  public T min() {
    T v = vals[0];

    for (int i = 1; i < vals.length; i++)
      if (vals[i].compareTo(v) < 0)
        v = vals[i];

    return v;
  }

  public T max() {
    T v = vals[0];

    for (int i = 1; i < vals.length; i++)
      if (vals[i].compareTo(v) > 0)
        v = vals[i];

    return v;
  }
}

public class MainClass {
  public static void main(String args[]) {
    Integer inums[] = { 3, 6, 2, 8, 6 };
    Character chs[] = { 'A', 'r', 'V', 'w' };

    MyClass<Integer> iob = new MyClass<Integer>(inums);
    MyClass<Character> cob = new MyClass<Character>(chs);

    System.out.println("Max value in inums: " + iob.max());
    System.out.println("Min value in inums: " + iob.min());

    System.out.println("Max value in chs: " + cob.max());
    System.out.println("Min value in chs: " + cob.min());
  }
}
Max value in inums: 8
Min value in inums: 2
Max value in chs: w
Min value in chs: A

  

posted @ 2015-06-28 18:06  hephec  阅读(194)  评论(0编辑  收藏  举报