温馨提示×

Arrays怎么降序排列一个对象数组

小亿
106
2023-12-21 19:34:13
栏目: 编程语言

要降序排列一个对象数组,可以使用Arrays类的sort方法,并通过传递一个自定义的Comparator对象来实现。

首先,创建一个实现Comparator接口的类,重写compare方法来定义对象之间的比较规则。在compare方法中,将要比较的两个对象的比较结果进行反转,即返回后一个对象与前一个对象的比较结果的负值,即可实现降序排列。

然后,在主程序中调用Arrays类的sort方法,传递要排序的对象数组和自定义的Comparator对象作为参数。

下面是一个示例代码,演示如何降序排列一个Person对象数组根据年龄的大小:

import java.util.*;

class Person {
    private String name;
    private int age;

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

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

class AgeComparator implements Comparator<Person> {
    @Override
    public int compare(Person p1, Person p2) {
        // 降序排列
        return p2.getAge() - p1.getAge();
    }
}

public class Main {
    public static void main(String[] args) {
        Person[] persons = {
            new Person("Alice", 25),
            new Person("Bob", 30),
            new Person("Charlie", 20)
        };

        Arrays.sort(persons, new AgeComparator());

        for (Person person : persons) {
            System.out.println(person.getName() + " - " + person.getAge());
        }
    }
}

运行该代码,输出结果如下:

Bob - 30
Alice - 25
Charlie - 20

可以看到,对Person对象数组按照年龄降序排列成功。

0