Java:比较/排序任意对象
无论如何,我可以为JVM中的所有对象定义一个序列/顺序,这样对于任何两个不同的对象o1或o2,有一个明确定义的规则,表示o1> o2或o2> o1和o1 == o2 if和only如果它们是同一个对象?
identityHashCode()比较将是一个很好的候选者,如果有无碰撞保证(没有)。
出生时间也会起作用 - 如果我能以某种方式获得它。
有任何想法吗?
谢谢!
没有找到相关结果
已邀请:
5 个回复
厦惫
搁手
来维护自己的序列ID。
誓猎贰
接口和
方法。 compareTo(..)方法的契约是当此对象小于作为参数传递的对象时返回-1(-ve number),当它们相等时返回0,当此对象更大时返回+1(+ ve数)比其他对象。您可以将比较实现为使用您喜欢的任何字段。 使用Collections.sort()或任何list.sort()将使用此比较器对列表进行排序。 希望这可以帮助!
款去芳尾脊
鲁釜头
方法应该以格式为不同的对象返回不同的值:
那么你可以先按字母顺序比较getClass()。getName(),然后是hashCode()吗?