有时可能会碰到根据自定义类的某个字段排序,或者根据多维数组的某一列排序,或者其他自定义排序。稍微总结一下。
第一种,实现Comparable
泛型接口,重写comparTo方法。Arrays.sort()
方法会自动调用实现了 Comparable
接口的对象的 compareTo()
方法来进行排序。
- 如果返回值小于 0:表示当前对象小于比较对象。
- 如果返回值等于 0:表示当前对象等于比较对象。
- 如果返回值大于 0:表示当前对象大于比较对象。
import java.util.Arrays;
public class MyClassSorting {
public static void main(String[] args) {
// 创建对象数组
Test[] array = {new Test(3, 7), new Test(1, 4), new Test(2, 9), new Test(5, 6)};
// 使用 Comparable 接口进行排序
Arrays.sort(array);
// 输出排序后的结果
for (Test obj : array) {
System.out.println(obj);
}
}
}
class Test implements Comparable<Test> {
int a;
int b;
public Test(int a, int b) {
this.a = a;
this.b = b;
}
@Override
public int