ホームページ > Java > &#&チュートリアル > オブジェクトの Java 配列を複数のフィールドで並べ替えるにはどうすればよいですか?

オブジェクトの Java 配列を複数のフィールドで並べ替えるにはどうすればよいですか?

DDD
リリース: 2024-12-23 04:39:47
オリジナル
428 人が閲覧しました

How Can I Sort a Java Array of Objects by Multiple Fields?

Java での複数のフィールドによる配列の並べ替え

オブジェクトの配列を操作する場合、多くの場合、複数の基準に基づいて配列を並べ替える必要が生じます。この場合のタスクは、人物オブジェクトの配列を名前のアルファベット順、次に年齢順に並べ替えることです。

解決策 1: カスタム コンパレータを使用する

1 つの方法は次のとおりです。カスタム コンパレータを使用して並べ替え基準を定義します。このクラスは Comparator インターフェイスを実装し、compare メソッドをオーバーライドして、目的の並べ替えロジックを指定します。

このアプローチを示すコード スニペットは次のとおりです。

private static void order(List<Person> persons) {

    Collections.sort(persons, new Comparator() {

        public int compare(Object o1, Object o2) {

            String x1 = ((Person) o1).getName();
            String x2 = ((Person) o2).getName();
            int sComp = x1.compareTo(x2);

            if (sComp != 0) {
                return sComp;
            }

            Integer x1 = ((Person) o1).getAge();
            Integer x2 = ((Person) o2).getAge();
            return x1.compareTo(x2);
        }
    });
}
ログイン後にコピー

このコンパレーターは、最初に、 person オブジェクトを比較し、それらが等しい場合は、それらのオブジェクトを比較します。 age.

メソッド: Collections.sort

アルゴリズム: マージ ソート (Arrays.sort で使用)

時間計算量: O(n log n)

利点: 柔軟な並べ替え基準が可能になります。

以上がオブジェクトの Java 配列を複数のフィールドで並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート