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

avatar
作者
猴君
阅读量:7

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!