ホームページ > Java > &#&チュートリアル > オブジェクトの Java 配列を複数のフィールド (名前と年齢) で並べ替える方法

オブジェクトの Java 配列を複数のフィールド (名前と年齢) で並べ替える方法

DDD
リリース: 2024-12-28 02:49:09
オリジナル
709 人が閲覧しました

How to Sort a Java Array of Objects by Multiple Fields (Name and Age)?

Java での複数フィールドの並べ替え

複数のフィールドによるオブジェクトの配列の並べ替えは、プログラミングにおける一般的な要件です。この質問では、人物オブジェクトの配列を名前で並べ替え、次に年齢で並べ替えたいと考えています。

解決策:

これを実現するには、コレクションを利用します。 sort メソッドとカスタム Comparator 実装。コンパレーターは、2 つのオブジェクトの比較ロジックを定義するクラスです。この場合、最初に名前に基づいて、フォールバックとして年齢に基づいて Person オブジェクトを比較するコンパレーターが必要です。

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);
    }});
}
ログイン後にコピー

説明:

  • コレクション。 sort: このメソッドは並べ替え機能を提供します。
  • Comparator: を実装する匿名の内部クラスを作成します。コンパレータインターフェイス。 Compare メソッドは、2 つの Person オブジェクトを比較する方法を定義します。
  • 名前の比較: まず、String.compareTo を使用して Person オブジェクトの名前を比較します。
  • 年齢の比較: 名前が等しい場合、 Integer.compareTo を使用して Person オブジェクトの年齢を比較します。

を使用してリストを並べ替えた後、カスタム コンパレータ、List同じ名前内では名前の昇順と年齢の昇順に並べ替えられます。

以上がオブジェクトの Java 配列を複数のフィールド (名前と年齢) で並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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