import java.util.*;public class AlphaComp implements Comparator {
  //就是下面这个方法
  public int compare(Object o1, Object o2) {
    // Assume it's used only for Strings...
    String s1 = ((String)o1).toLowerCase();
    String s2 = ((String)o2).toLowerCase();
    return s1.compareTo(s2);
  }
  public static void main(String[] args) {
    String[] s = Array1.randStrings(4, 10);
    Array1.print(s);
    AlphaComp ac = new AlphaComp();
    Arrays.sort(s, ac);
    Array1.print(s);
    // Must use the Comparator to search, also:
    int loc = Arrays.binarySearch(s, s[3], ac);
    System.out.println("Location of " + s[3] +
     " = " + loc);
  }
}

解决方案 »

  1.   

    ?
    String s1 = ((String)o1).toLowerCase();
        String s2 = ((String)o2).toLowerCase();
        return s1.compareTo(s2);
    不是执行语句么?
    搂主的意思是?
      

  2.   

    我来解释把
    这里的Comparator是java设计的一个专门用来比较大小的接口。
    这里的 public int compare(Object o1, Object o2) {
    // Assume it's used only for Strings...
    String s1 = ((String)o1).toLowerCase();
    String s2 = ((String)o2).toLowerCase();
    return s1.compareTo(s2);
    }就是这个Comparator中用于比较大小的函数了。
    所有其他java内部提供的类需要比较大小比如说排序什么的就会调用这个函数。
    这里main中建立了一个array。然后在sort也就是排序的时候把AlphaComp的对象作为排序原则传入到函数中。
    然后sort在排序中就会调用AlphaComp的compare来做大小比较以确定元素的顺序