Arraysクラスを使用してオブジェクト配列を降順に並べ替える方法は何ですか?

オブジェクト配列を降順に並べ替えるには、Arraysクラスのsortメソッドを使用し、カスタムComparatorオブジェクトを渡すことで実現できます。

まず、Comparatorインターフェースを実装したクラスを作成し、compareメソッドをオーバーライドしてオブジェクト間の比較ルールを定義します。compareメソッド内で、比較する2つのオブジェクトの比較結果を逆にし、後のオブジェクトと前のオブジェクトの比較結果の負の値を返すことで降順に並べ替えることができます。

その後、メインプログラムで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オブジェクト配列が年齢の降順で正常に並べ替えられたのが見て取れます。

bannerAds