複数のフィールドによる Java オブジェクトの並べ替え: 名前と年齢
それぞれに整数の年齢と文字列の名前が含まれる Person オブジェクトの配列を考えます。 。このような配列を名前のアルファベット順に並べ替え、次に年齢順に並べ替えるには、カスタム並べ替えアルゴリズムが必要です。
Collections.sort の使用
Java Collections ライブラリには、組み込みの並べ替えメソッドが用意されています。以下を活用できます:
private static void order(List<Person> persons) { Collections.sort(persons, new Comparator<>() { @Override public int compare(Object o1, Object o2) { // Compare by name (lexicographically) String x1 = ((Person) o1).getName(); String x2 = ((Person) o2).getName(); int sComp = x1.compareTo(x2); // If names are different, return result if (sComp != 0) { return sComp; } // If names are equal, compare by age Integer x1 = ((Person) o1).getAge(); Integer x2 = ((Person) o2).getAge(); return x1.compareTo(x2); } }); }
プロセスフロー
このカスタム Comparator を使用して Collections.sort を呼び出すと、配列を並べ替えることができます。人物オブジェクトを名前の昇順、次に年齢の昇順で並べます。
以上がJava オブジェクトを複数のフィールド (名前と年齢) で並べ替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。