对于equals和compareTo是否有意义是不一致的吗?

iva*_*off 7 java collections

我想在SortedSet|中使用一个类 SortedMap.

class MyClass implements Comparable<MyClass>{
  // the only thing relevant to comparisons:
  private final String name;

  //...
}
Run Code Online (Sandbox Code Playgroud)

类的实例必须按其name属性排序.
但是,我不希望同等命名的实例被认为是平等的.

所以SortedSet内容看起来像a,a,a,b,c.
(通常,SortedSet只允许a,b,c)

首先:这是(哲学上)一致吗?

如果是这样,我必须想到不可预知的行为,我不会覆盖equals(...)hashCode()

编辑:
对不起,我的问题似乎不一致:
我想在一个集合中放置多个"相等"值,这不允许这个概念. 所以,请不要回复我的问题. 感谢所有已经回复的人.

Mic*_*ers 18

让我问你一个问题:a.compareTo(b)返回0并a.equals(b)返回false是否有意义?

我会Comparator<MyClass>改用.这就是为什么我所知道的所有SortedMap/ SortedSet实现允许您Comparator在创建时传递的原因.