2016-11-15 56 views
1

在回顾Java中的数组主题时,我在java.util包的Arrays类中遇到以下方法。'自然排序'及其与compareTo()方法的关系

void sort(type[] array) 

此外,我偶然发现了一些东西,我觉得这些东西需要更多的解释。

的方法根据它们的 自然顺序排序数组中的元素。

我试着总结一下在这下面我的疑惑:

  • 什么是自然顺序恰恰意味着什么?

  • 请问自然排序的原始类型和参考类型有什么区别,如果是这样的话?

  • 最后,请问Comparable<T>接口compareTo()方法定义和/或覆盖自然排序

+0

_natural ordering_是Java用来表示由'Comparable '接口强加的顺序的命名法。 – Jack

回答

1

什么意思是自然排序?

自然排序是由compareTo定义的排序为Comparable。例如,Integer自然是从最低值到最高值排序。

`原始类型和引用类型的自然顺序是否有区别,如果是这样的话?

从技术上讲,没有。基元的自然排序(double,boolean与它们的包装类的排序相同(Double,Boolean))。

compareTo()接口的方法如何定义和/或覆盖自然排序?

compareTo定义了类的自然排序,这就是为什么Javadoc解释为:“数组中的所有元素都必须实现Comparable接口。

作为一个附注,通过定义Comparator来进行排序的情况下,自然排序被覆盖。例如,您可以使用Arrays.sort(T[], Comparator<? super T>)String[]进行排序(在此情况下,通用T将变为String)。

3

我们谈论自然顺序,当我们梳理延伸Comparable得益于compareTo(T o)执行情况的类的实例。

检查的Comparable的Javadoc:

这个接口规定了实现它的每个类 的对象进行整体排序。这种排序被称为该类别的 自然排序,并且该类的compareTo方法被称为其自然比较方法。