我正在使用将对象添加到 TreeSet。而且我从不在任何基于哈希的集合中使用它。我觉得 TreeSet 需要覆盖 compareTo 方法等于不需要覆盖方法。不覆盖 equals 方法是一种好习惯吗?如果否,那么为什么需要 equals 方法覆盖,因为我不会在基于哈希的集合中使用它?
更新:javadoc 说,
强烈建议但不严格要求 (x.compareTo(y)==0) == (x.equals(y))。一般来说,任何实现了 Comparable 接口并违反此条件的类都应该清楚地表明这一事实。推荐的语言是“注意:这个类有一个与equals不一致的自然顺序。”
老实说,我不明白平等实施的强烈建议背后的原因。