Java Arrays自定义排序的几种写法
1. 类对象实现Comparable接口
public class Sort01 {
public static void main(String[] args) {
A[] arr = new A[4];
arr[0] = new A("aaa", 10);
arr[1] = new A("cc", 8);
arr[2] = new A("dddd", 11);
arr[3] = new A("bb", 3);
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
class A implements Comparable<A>{
private String name;
private int grade;
public A(String name, int grade) {
this.name = name;
this.grade = grade;
}
public String getName() {
return name;
}
public int getGrade() {
return grade;
}
@Override
public String toString() {
return "A{" +
"name='" + name + '\'' +
", grade=" + grade +
'}';
}
@Override
public int compareTo(@NotNull A o) {
return grade - o.grade;
}
}
2. 创建实现Comparator接口的类/匿名内部类
public class Sort01 {
public static void main(String[] args) {
A[] arr = new A[4];
arr[0] = new A("aaa", 10);
arr[1] = new A("cc", 8);
arr[2] = new A("dddd", 11);
arr[3] = new A("bb", 3);
Arrays.sort(arr, new Comparator<A>() {
@Override
public int compare(A o1, A o2) {
return o1.getName().compareTo(o2.getName());
}
});
Syste