public static void main(String[] args) {
Person[] arr = {new Person("1",43),
new Person("2",63),
new Person("3",13),
new Person("4",90)};
System.out.println(Arrays.toString(arr));
Arrays.sort(arr, new Comparator<Person>() {
@Override
public int compare(Person a, Person b) {
return a.getAge()-b.getAge(); // o1.getAge()-o2.getAge()
}
});
System.out.println(Arrays.toString(arr));
}
普遍一点的,数字1和2你总知道哪个大,哪个小把。
那我现在要给一堆人排序,按什么呢?
按年龄?按名字的拼音顺序?按工资收入?
只要确定了顺序,自然就能得到结果。
而Arrays.sort(),第一个参数是数组,第二个就是你要重写的比较器。
当compare 返回正数时,即认为a比b大
如果返回0,就认为他们大小相同,也会保持原来的顺序
如果返回负数,就会认为a比b小
至于排序过程中,用的那些排序算法,如快速排序,归并排序,二分排序,选择排序,插入排序,冒泡排序等等就不是你需要考虑的地方了。你只是定义一种大小规则而已。哪种排序算法更优,api会自己权衡选择的。