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); }}); }
説明:
を使用してリストを並べ替えた後、カスタム コンパレータ、List
以上がオブジェクトの Java 配列を複数のフィールド (名前と年齢) で並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。