Javaでコレクションのソートを行う方法

Javaでは、Collections.sort()メソッドを使用してコレクションをソートできます。Collections.sort()メソッドはList型の引数を受け取り、リストをソートします。

Collections.sort()メソッドを使用して整数のリストをソートするサンプルコードを次に示します。

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(5);
        numbers.add(2);
        numbers.add(8);
        numbers.add(1);

        Collections.sort(numbers);

        System.out.println(numbers); // 输出:[1, 2, 5, 8]
    }
}

上記のコードでは、整数型のリスト numbers を作成し、Collections.sortメソッドを使用してソートしています。最後にソートされたリストを出力しています。

Comparableインターフェイスの実装で比較基準を定義し、Collections.sort()メソッドでソートできます。オブジェクトのクラスを変更したくない場合は、Comparatorインターフェイスを使用して比較基準を定義し、それをCollections.sort()メソッドの第2引数として渡します。

Comparatorインターフェイスを使用して文字列リストをソートするサンプルコードを以下に示します。

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> names = new ArrayList<>();
        names.add("Alice");
        names.add("Bob");
        names.add("Charlie");
        names.add("David");

        Collections.sort(names, new Comparator<String>() {
            public int compare(String s1, String s2) {
                return s1.compareTo(s2);
            }
        });

        System.out.println(names); // 输出:[Alice, Bob, Charlie, David]
    }
}

上記コードでは、文字列のリスト「names」を作成し、コレクションの「sort」メソッドを使用して並び替えます。比較ルールを定義するために、コンパレータのインターフェイスを実装する匿名内部クラスを作成し、文字列の自然な並び替えのルールを使用するように指定します。最後に、並び替えられたリストを出力します。

なお、上記のサンプルはJava 7 以前の匿名内部クラスの記法であり、Java 8 以降ではラムダ式を使用してより簡潔に記述できる(下記参照)。

Collections.sort(names, (s1, s2) -> s1.compareTo(s2));
bannerAds