equals()和之间的区别
compareTo()是,
equals()仅检查两个对象是否彼此相等,其中
compareTo()使用来标识指定类的实例的自然顺序。此外
equals()方法有合同
hashCode()的方法,但
compareTo()并非如此。
根据JavaDoc:
请注意,null不是任何类的实例,即使e.equals(null)返回false,e.compareTo(null)也应引发NullPointerException。
强烈建议(但并非严格要求(x.compareTo(y)==
0)==(x.equals(y))。一般而言,任何实现Comparable接口且违反此条件的类都应明确指出这一事实。推荐的语言是“注意:此类具有与等式不一致的自然顺序”。
您可以随意
compareTo()在您的
equals()方法中重用方法逻辑,但请记住与的所有合同
equals(),
hashCode()以及与JavaDoc签订的
compareTo()方法合同。如果它们彼此不冲突,则继续。
我认为合同的执行更为重要。



