Collections.sort方法排序的规则是 :
调用Comparator.compare()方法依次传入两个参数 参数1,参数2。
根据返回的值从小到大正序输出,如果返回值小于0那么就将参数1排序在参数2前,如果大于0就将参数1排序在参数2后,如果等于0位置不动。
Collections.sort只根据我们返回的值进行排序,在compare方法中可以按照自己的规则进行计算,决定返回值是多少。
如果我们想反序输出,那就将原先compare返回小于0的数变成大于0,原先compare返回的大于0的数变成小于0,就可以了
示例代码:
正序输出(从小到大)
public static void main(String[] args){
List<Integer> list = new ArrayList<Integer>(){
{
add(1);
add(300);
add(4);
add(12);
add(67);
add(7);
}
};
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
});
for (int i = 0; i < list.size(); i++) {
System.out.println(lis