public class PairTest1
{
   public static void main(String[] args)
   {
      String[] words = { "Mary", "had", "a", "little", "lamb" };
      Pair<String> mm = ArrayAlg.minmax(words);
      System.out.println("min = " + mm.getFirst());
      System.out.println("max = " + mm.getSecond());
   }
}class ArrayAlg
{
   public static Pair<String> minmax(String[] a)
   {
      if (a == null || a.length == 0) return null;
      String min = a[0];
      String max = a[0];
      for (int i = 1; i < a.length; i++)
      {
         if (min.compareTo(a[i]) > 0) min = a[i];
         if (max.compareTo(a[i]) < 0) max = a[i];
      }
      return new Pair<String>(min, max);
   }
}

解决方案 »

  1.   


    public class Pair<T> 
    {
       public Pair() { first = null; second = null; }
       public Pair(T first, T second) { this.first = first;  this.second = second; }   public T getFirst() { return first; }
       public T getSecond() { return second; }   public void setFirst(T newValue) { first = newValue; }
       public void setSecond(T newValue) { second = newValue; }   private T first;
       private T second;
    }
      

  2.   

    运行结果:
    min=Mary
    max=little为什么不是
    min=a
    max=little不是利用compareTo比较吗?
      

  3.   

    因为大写字母的ASCII值小于小写字母,所以Mary以大写字母开头,所以是最小的。如果是用compareToIgnoreCase比较,就会忽略大小写,就会是你说的那个结果了
      

  4.   

    A~Z-- 65~90  a -- 97~122