我在写用ArrayList按从大到小排序的时候,我自己写了个类Student实现了comparable接口中的compareTo方法。然后调用Collections.sort(list)排序,发现得到的结果是按我的compareTo方法排序。
我的排序是 【6 5 4 3】
可是java API文档中说:sort(List<T> list)
根据元素的自然顺序 对指定列表按升序进行排序。
纠结了半天,也上网查了下资料。最后我在eclipse中单步调试发现,这货在底层调用了我的compareTo方法。
所以我才知道,Collections.sort(list)是调用当前类中的compareTo方法,根据返回值进行升序排列。而不是单纯的比较我们所认为的数字大小进行升序排列的。
|