【发布时间】:2014-04-07 10:27:46
【问题描述】:
Comparator 接口的约定中说,它必须与 equals 一致。
这是否意味着 Comparator = 0 如果 equalsTo = true ,还是意味着 Comparator = 0 如果 且仅当 equalsTo = true ?
我似乎记得这是第二个,但我遇到了很多按非唯一子属性排序的比较器。
例如,我可能有具有子属性日期的对象,我想按提交日期对我的对象列表进行排序。但是,您可以拥有多个具有相同日期的对象吗?这有什么后果?当然,这个问题已经有最佳实践解决方案了吗?如何在不违反比较器合同的情况下按不能保证唯一的属性对集合进行排序?这种违规行为的后果是什么?它们是否易于管理?
【问题讨论】:
标签: java collections comparator