日期:2014-05-18  浏览次数:20663 次

对Collections中的reverseOrder有些不解。
reverseOrder
public static <T> Comparator<T> reverseOrder()返回一个比较器,它强行反转实现 Comparable 接口那些对象 collection 上的自然顺序。(自然顺序是通过对象自身的 compareTo 方法强行排序的。)这允许使用单个语句,以反向自然顺序对实现 Comparable 接口的那些对象的 collection(或数组)进行排序(或维护)。例如,假设 a 是一个字符串数组。那么:
                Arrays.sort(a, Collections.reverseOrder());
将按照反向字典(字母)顺序对数组进行排序。
返回的比较器是可序列化的。 


返回:
返回一个比较器,它强行反转实现 Comparable 接口那些对象 collection 上的自然顺序。


说明是如此。
但是他没有参数,难道所有的类型的自然比较器都是一样的么?
比如
Arrays.sort(a, Collections.reverseOrder());
如果这个a,可能是自定义类型,是String,还可能是Integer类型,reverseOrder的返回值,是如何根据这些类型不同而发生变化呢。
哪儿有一个输入的参数??

------解决方案--------------------
Arrays.sort(a, Collections.reverseOrder());
这段代码你写下就会发现
a只能是object数组
其他任何类型都报错!