目录
1.基础款sort对数组排序
对所有数组元素排序(默认为升序排序)
int arr[] = {4,6,3,8,9,10,2,1,5,7};
Arrays.sort(arr);//对所有数组元素排序
for(int an : arr)System.out.println(an);
降序排序
Integer[] arr = {10, 7, 8, 9, 1, 5};
Arrays.sort(arr, new Comparator<Integer>() {
public int compare(Integer a, Integer b) {
return b - a;
}
});
//输出
for(int an : arr)System.out.println(an);
指定需要排序的起始元素和终止元素(包括头,不包括尾)
int arr[] = {4,6,3,8,9,10,2,1,5,7};
Arrays.sort(arr,0,6);//对arr[0]-arr[5]排序
for(int an : arr)System.out.println(an);
2.重写Comparator接口来达到更复杂的排序
对二维数组排序
按第一列进行排序:
int arr[][] = {{20,1,59},{8,43,10},{87,6,13},{2,99,31}};
Arrays.sort(arr, new Comparator<int[]>() {//重写比较器Comparator
public int compare(int[] o1, int[] o2) {
return Integer.compare(o1[0], o2[0]);
}
});
//打印输出
for(int i=0; i<4; i++) {
for(int j=0; j<3; j++)
System.out.print(arr[i][j]+" ");
System.out.println();
}
运行结果:
根据字符串长度进行排序
ArrayList<String> list = new ArrayList<String>();
list.add("Apple");
list.add("Orange");
list.add("Bananana");
list.add("Pear");
Collections.sort(list, new Comparator<String>() {
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
});
for(String str : list)System.out.println(str);
其实重写Comparator比较器不只是以上这几种用法, 还可以根据题意DIY不同的排序方式