【Java】DTO項目の要素をComparatorでリストソート
SQLでなく、JavaでDTOリストをソートしたい時のサンプルコードです。たまに利用したくなる時があるので、備忘録としてここに残しておきます。Arrays.aslistを用いてリスト生成したものについてはエラーとなるので注意。
Java8から利用できるComparatorでソートするので、それより前の環境ではこの方法は利用できません。とはいえ、あんまりそういった環境で動いてるシステムはないかも知れません。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/Comparator.html
サンプルコード
DTOクラスと、実際に動かすテストクラスをそれぞれ用意しました。
DTOクラスは社員番号と年齢を保持するシンプルなものにしています。テストクラスにはそのDTOに値をセットして、実際にソートする処理を書いています。
テストソースにも記載していますが、compareToする時に引数に渡すオブジェクトによって、昇順にするか降順にするかを変更することができます。また