117.info
人生若只如初见

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

要降序排列一个对象数组,可以使用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 {
    @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对象数组按照年龄降序排列成功。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe184AzsLAwRWAFA.html

推荐文章

  • java中的copy有哪些功能

    在Java中,可以使用以下方法来复制对象或数据: Object.clone() 方法:该方法在可克隆的对象上创建并返回一个新的对象副本。要使用此方法,类必须实现 Cloneable...

  • linux怎么写入内容到文件并指定编码

    在Linux中,可以使用以下命令将内容写入文件并指定编码: 使用echo命令将文本内容写入文件。可以使用-e选项来解析转义字符,并使用>>操作符追加内容到文件中。例...

  • docker安装portainer不能运行怎么解决

    如果你无法运行 Portainer,请按照以下步骤解决问题: 检查 Docker 是否已经正确安装和运行。你可以在终端中输入 docker ps 命令来检查 Docker 是否正在运行。 确...

  • mapstruct怎么将集合转化为对象

    在使用MapStruct转换集合到对象时,需要定义两个映射方法。一个方法用于将集合中的每个元素转化为对象,另一个方法用于将整个集合转化为对象。
    首先,定义一...