我想在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在创建时传递的原因.