Arrays.sort()几种用法
1. Arrays.sort(T[] a)是对数组元素按字典序进行升序排列
import java.util.*;
public class Main {
public static void main(String[] args){
Integer[] arr = {5,4,7,9,2,12,54,21,1};
//升序
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
output:
[1, 2, 4, 5, 7, 9, 12, 21, 54]
2. Arrays.sort(T[] a, Comparator<? Super T> c)用Comparator接口实现自定义排序规则
import java.util.*;
public class Main {
public static void main(String[] args){
Integer[] arr = {5,4,7,9,2,12,54,21,1};
//降序
Arrays.sort(arr, new Comparator<Integer>() {
public int compare(Integer a, Integer b) {
return b-a;
}
});
System.out.println(Arrays.toString(arr));
}
}
output:
[54, 21, 12, 9, 7, 5, 4, 2, 1]
3. Arrays.sort(T[] a, int fromIndex, int toIndex)实现对数组中的一部分进行排序
对数组a中,index属于[fromIndex, toIndex)的元素进行排序
同样,Arrays.sort(T[] a, int fromIndex, int toIndex, Comparator<? Super T> c)可实现自定义排序规则
import java.util.*;
public class Main {
public static void main(String[] args){
Integer[] arr = {5,4,7,9,2,12,54,21,1};
//局部排序-升序
Arrays.sort(arr, 2, 7);
System.out.println(Arrays.toString(arr));
}
}
output:
[5, 4, 2, 7, 9, 12, 54, 21, 1]
自定义的
1 package test;
2
3 import java.util.Arrays;
4 import java.util.Comparator;
5
6 public class Main {
7 public static void main(String[] args) {
8 //注意,要想改变默认的排列顺序,不能使用基本类型(int,double, char)
9 //而要使用它们对应的类
10 Integer[] a = {9, 8, 7, 2, 3, 4, 1, 0, 6, 5};
11 //定义一个自定义类MyComparator的对象
12 Comparator cmp = new MyComparator();
13 Arrays.sort(a, cmp);
14 for(int i = 0; i < a.length; i ++) {
15 System.out.print(a[i] + " ");
16 }
17 }
18 }
19 //Comparator是一个接口,所以这里我们自己定义的类MyComparator要implents该接口
20 //而不是extends Comparator
21 class MyComparator implements Comparator<Integer>{
22 @Override
23 public int compare(Integer o1, Integer o2) {
24 //如果n1小于n2,我们就返回正值,如果n1大于n2我们就返回负值,
25 //这样颠倒一下,就可以实现反向排序了
26 if(o1 < o2) {
27 return 1;
28 }else if(o1 > o2) {
29 return -1;
30 }else {
31 return 0;
32 }
33 }
34
35 }
9 8 7 6 5 4 3 2 1 0