問題一覧に戻る
中級コレクション
問題88: Comparatorインターフェース

Comparatorはコレクションのソートのためのカスタム比較ロジックを定義します。ラムダ式によりコンパレータの実装が簡潔で読みやすくなります。compareメソッドは小さい場合は負、等しい場合はゼロ、大きい場合は正を返します。この柔軟性により、自然順序、逆順序、文字列の長さやオブジェクトのフィールドなどのカスタムプロパティなど、任意の基準でソートできます。

import java.util.*;

public class Main {
public static void main(String[] args) {
List<String> names = Arrays.asList("Bob", "Alice", "Charlie");

// ラムダ式コンパレータ
names.sort((a, b) a.__(b));
System.out.println("Natural order: " + names);

// 逆順
names.sort((a, b) -> b.compareTo());
System.out.println("Reverse order: " + names);

// 長さで比較
names.sort((a, b) -> a.() - b.length());
System.out.println("By length: " + names);
}
}