ラムダ式 レッスン4
Comparator
Comparator.comparing, thenComparing, reversed を使ったソート
Comparatorとラムダ式
Comparator は関数型インターフェースなので、ラムダ式で簡潔に記述できます。 Java 8では Comparator.comparing() などの 静的メソッドやデフォルトメソッドが追加され、複雑なソート条件も読みやすく記述できるようになりました。
Comparator.comparing(keyExtractor)— キーで比較.thenComparing(keyExtractor)— 第2ソートキーの追加.reversed()— 逆順にするComparator.naturalOrder()/reverseOrder()
Comparator.comparingでソート
Comparator.comparing() にキー抽出関数を渡すことで、 特定のプロパティでソートできます。
Javaエディタ
thenComparingで複合ソート
thenComparing() を使うと、第1キーが同じ場合に 第2キーでさらにソートする複合条件を簡潔に書けます。
Javaエディタ
カスタムオブジェクトのソート
独自クラスのリストも Comparator.comparing() で 簡潔にソートできます。
Javaエディタ