比方说,我有四个对象的无序列表:[B, C, A, D]
。
所有四个对象都是同一类型的,并且:
(A > B),
(C > D),
(A != C or D)
(B != C or D)
(C != A or B)
(D != A or B).
通过!=
我的意思是,他们既不是小于,等于到或大于其他对象。
我需要“排序”名单,使得A
总会B
来之前,和C
总会D
面前。除了这两个要求,我对列表的顺序没有特殊的需求;因此,鉴于前面描述的列表,排序函数返回值应该是[A, B, C, D]
或[C, D, A, B]
。
至于这个问题的原因,我想排序基于它们之间的相互关系java.lang.Class
对象的数组。例如,如果是A
的B
超类/超接口,则A
是低于B
。如果A
扩展/实现B
,然后是A
B
,大于。如果A
是B
,那么显然A
等于B
。否则,A
是完全不具有可比性toB。