2021年8月12日
package com.qfedu.d_anonymous;
import java.util.Arrays;
import java.util.Comparator;
class Dog {
String name;
int age;
public Dog(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return "name:" + name + ", age:" + age;
}
}
public class Demo2 {
public static void main(String[] args) {
Dog dog1 = new Dog("旺财", 4);
Dog dog2 = new Dog("牛彩云", 8);
Dog dog3 = new Dog("大黄", 3);
Dog dog4 = new Dog("狗蛋", 7);
//我让你按照dog对象的年龄进行排序
//实例化了2个dog对象,然后统一放到了dog数组中
Dog[] dogs = {dog1, dog2, dog3, dog4};
//sort(T[] a, Comparator<? super T> c)
//根据指定的比较器引发的顺序对指定的对象数组进行排序。
//如果给你一个整型的数据你会排序,现在给你一个对象,
//让你进行排序,使用sort能行吗?能行
//第一个参数是类对象的数组,第二个参数是一个接口
Arrays.sort(dogs, new Comparator<Dog>() {
@Override
public int compare(Dog o1, Dog o2) {
// TODO Auto-generated method stub
//比较的是两个对象中的age属性,如果是负数的话
//o1排在前面,o2排在后面
return o1.age - o2.age;
}
});
System.out.println(Arrays.toString(dogs));
}
}