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 サイトの他の関連記事を参照してください。