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));
    }
}


posted @ 2021-08-12 23:20  张三疯321  阅读(18)  评论(0编辑  收藏  举报