<JavaLearn/>
ラムダ式 レッスン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エディタ