Java 複数条件ソートの実装方法【Comparator徹底解説】

Javaでは、Comparatorインターフェースを使用して複数の条件でのソートを実装することができます。 Comparatorインターフェースにはcompareメソッドがあり、必要に応じて複数の比較条件を実装し、そのComparatorを使用して複数の条件でソートを行うことができます。

以下は、複数条件でのソートを実装する方法を示すサンプルコードです。

import java.util.Comparator;

public class MultiConditionSort {

    public static void main(String[] args) {
        // 定义一个Person类
        class Person {
            String name;
            int age;

            public Person(String name, int age) {
                this.name = name;
                this.age = age;
            }

            @Override
            public String toString() {
                return name + " - " + age;
            }
        }

        // 创建一个Person对象数组
        Person[] people = {
                new Person("Alice", 30),
                new Person("Bob", 25),
                new Person("Charlie", 35),
                new Person("David", 20)
        };

        // 定义一个Comparator,实现多条件排序
        Comparator<Person> comparator = Comparator
                .comparing((Person p) -> p.age) // 按年龄升序排序
                .thenComparing(p -> p.name);     // 年龄相同时,按姓名升序排序

        // 使用Comparator进行排序
        Arrays.sort(people, comparator);

        // 打印排序结果
        for (Person person : people) {
            System.out.println(person);
        }
    }
}

上記の例では、名前と年齢の2つの属性を含むPersonクラスを定義しました。次に、Personオブジェクトの配列を作成し、複数条件でソートするComparatorを定義しました。年齢の昇順で先にソートし、年齢が同じ場合は名前の昇順でソートします。最後に、Arrays.sortメソッドを使用してPerson配列をソートし、ソート結果を出力します。

この方法を使用することで、複数の条件で簡単にソートできます。

bannerAds