自然排序和总排序之间的差异
2022-09-01 00:02:59
我碰巧遇到许多语句,例如在对数组或集合进行排序时需要自然排序时使用ableable,以及用于总排序的比较器。
您可能听说过的版本可能相同或不同,具有相同的含义,但最终它是两者之间的区别因素之一(比较器和可比较的接口)。
但是,我在任何地方都找不到这两种排序类型之间的区别。如果有人能用一个很好的例子来解释它,我将不胜感激:)
我碰巧遇到许多语句,例如在对数组或集合进行排序时需要自然排序时使用ableable,以及用于总排序的比较器。
您可能听说过的版本可能相同或不同,具有相同的含义,但最终它是两者之间的区别因素之一(比较器和可比较的接口)。
但是,我在任何地方都找不到这两种排序类型之间的区别。如果有人能用一个很好的例子来解释它,我将不胜感激:)
总排序意味着所有值都可以与所有其他值进行比较。例如,如果你有一个集合,并且没有自然的总顺序(但你可以发明一个)BigDecimal
String
在Java中,自然顺序被定义为JVM提供的排序。这可能与人们可能认为的自然秩序不符。例如,字符串按 ASCIIbetic 方式排序。这意味着大写字母在小写字母之前,在小写字母之前Z
a
10
2
http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html
此接口对实现它的每个类的对象施加总排序。这种排序称为类的自然排序,类的 compareTo 方法称为其自然比较方法。
总排序是一个通用的数学概念。它主要与偏序不同,因为对于集合 X 中的每个 a 和 b,“a <= b”或“b <= a”都是有意义和真实的。就Java而言,这意味着在两个实例中,一个实例必须大于或等于另一个(即比较它们是有意义的)。Comparable