Comparable<T>并且Comparator<T>是所有标准Java排序选项使用的标准接口(除原始数组之外的所有选项都是如此).
在Java语言中,任何实现Comparable的类都具有"自然顺序".(从技术上讲,它必须Comparable<? super E>在E匹配自身的地方实现,以获得自然顺序).可以使用外部比较器对没有自然顺序的类进行排序.比较器还可用于实现针对自然顺序运行的排序顺序(例如,按字母顺序降序排序字符串).
这些原则也适用于无论是在SortedSet<E>和SortedMap<K,V>实施方式中,那种其元件/自动按键使用任一的自然顺序或供给比较器.
在静态效用方法中也可以找到这些相同的原理
Arrays.sort(arr)和
Arrays.sort(arr, comparator)阵列Collections.sort(list)和Collections.sort(list, comparator)列表它可以分别用于排序数组和列表,每个数组和列表都不支持自己排序.
Guava库通过提供抽象Ordering类作为基本实现来进一步实现Comparator这一点,其中已经包含标准方法,例如提供自身的反向视图以及基于此的排序和检索的许多便利方法Ordering.
有关对象排序的好文章可以在Sun Java Tutorial的Collection Trail中找到.