请看例子:
import java.util.Arrays;
import java.util.Comparator;public class testarray {        public static void main(String[] args) {
                String[] str = { "Jack", "aucy", "Hary", "bush", "cKuroro", "Geroro" };                Arrays.sort(str, new Comparator() {
                      public int compare(Object o1, Object o2) {
                               String str1 = (String) o1;
                               String str2 = (String) o2;
                               return str1.toLowerCase().compareTo(str2.toLowerCase());
                     }
                  });                for (int i = 0; i < str.length; i++) {
                        System.out.println(str[i]);
                }
        }
}文中多创建的内部类只实现了java.util.Comparator中的一个方法:int compare(Object o1, Object o2);
并没有实现boolean equals(Object obj);!
但是运行没有提示错误..是不是因为类继承自object,而OBJECT中有equals的实现..所以不用再内部类中实现!!?

解决方案 »

  1.   

    注意,不 重写 Object.equals(Object) 方法总是 安全的。然而,在某些情况下,重写此方法可以允许程序确定两个不同的 Comparator 是否强行实现了相同的排序,从而提高性能。 
    javadoc中有这样的描述,你的理解是正确的。
      

  2.   

    是不是所谓的类不变量?不许有两个不同的对象对应相同的东东,所以可以用equals来判定?