溫馨提示×

Arrays怎么降序排列一個對象數(shù)組

小億
104
2023-12-21 19:34:13
欄目: 編程語言

要降序排列一個對象數(shù)組,可以使用Arrays類的sort方法,并通過傳遞一個自定義的Comparator對象來實現(xiàn)。

首先,創(chuàng)建一個實現(xiàn)Comparator接口的類,重寫compare方法來定義對象之間的比較規(guī)則。在compare方法中,將要比較的兩個對象的比較結(jié)果進(jìn)行反轉(zhuǎn),即返回后一個對象與前一個對象的比較結(jié)果的負(fù)值,即可實現(xiàn)降序排列。

然后,在主程序中調(diào)用Arrays類的sort方法,傳遞要排序的對象數(shù)組和自定義的Comparator對象作為參數(shù)。

下面是一個示例代碼,演示如何降序排列一個Person對象數(shù)組根據(jù)年齡的大?。?/p>

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

運行該代碼,輸出結(jié)果如下:

Bob - 30
Alice - 25
Charlie - 20

可以看到,對Person對象數(shù)組按照年齡降序排列成功。

0