sort()的两种调用方式的代码如下
public static <T extends Comparable<? super T>> void sort(List<T> list) {
list.sort(null);
}
public static <T> void sort(List<T> list, Comparator<? super T> c) {
list.sort(c);
}
static List<Integer> L1= Arrays.asList(3,1,2);
public static void sort(){
System.out.println("before sort:");
for(int i=0;i<L1.size();i++){
System.out.println(L1.get(i));
}
Collections.sort(L1);
System.out.println("after sort:");
for(int i=0;i<L1.size();i++){
System.out.println(L1.get(i));
}
}
before sort:
3
1
2
after sort:
1
2
3
默认sort()为正序,可以通过第二种方式实现逆序,对于自定义类的排序,可修改compare的参数为对应类,并自定义具体的排序方法。
public static void sort(){
System.out.println("before sort:");
for(int i=0;i<L1.size();i++){
System.out.println(L1.get(i));
}
Collections.sort(L1, new Comparator<Integer>() {
@Override
/**
* @author: gy
* @Description:
* @param o1:
* @param o2:
* @Return: int -1表示逆序,1表示正序
*/
public int compare(Integer o1, Integer o2) {
return o1<o2?1:-1;
}
});
System.out.println("after sort:");
for(int i=0;i<L1.size();i++){
System.out.println(L1.get(i));
}
}