定义Dog数组并通过接口排序-方法1/2

方法一:

package com.iit.demo;

import java.util.Arrays;
import java.util.Comparator;

// MyComparator类有一个能力(实现了接口 = has一种能力)
// 对两个Dog对象进行判断:按age属性。
class MyComparator implements Comparator<Dog>{
    @Override
    public int compare(Dog o1, Dog o2) {
        return o2.getAge()-o1.getAge();
    }
}

public class DemoArray {
    public static void main(String[] args) {
        Dog[] dogs = new Dog[5];
        int index = 0;
        dogs[index++] = new Dog("大黑1",15);
        dogs[index++] = new Dog("大黑2",13);
        dogs[index++] = new Dog("大黑3",11);
        dogs[index++] = new Dog("大黑4",9);
        dogs[index++] = new Dog("大黑5",3);

        //方法一
        //Arrays.sort(dogs,new MyComparator());
        //方法二 匿名内部类
        /*
        Arrays.sort(dogs, new Comparator<Dog>() {
            @Override
            public int compare(Dog o1, Dog o2) {
                return o1.getAge()-o2.getAge();
            }
        });
        //*/
        //方法三:用lambda优化 - 流行
        Arrays.sort(dogs, (o1, o2) -> o1.getAge()-o2.getAge());

        for(Dog d:dogs){
            System.out.println(d);
        }

    }
}

 

package com.iit.demo;

public class Dog {
    private String name;
    private int age;

    public Dog(){}

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 

posted @ 2022-06-01 10:11  xiaoyongdata  阅读(70)  评论(0)    收藏  举报