第1章 ラムダ式とは : 問題 4 : 複雑な Comparator をラムダ式で書く
問題 4
File
の配列が与えられたとき、その配列をディレクトリ, ファイルの順に(ディレクトリ, ファイルの各々ではパス名で)ソートする処理をラムダ式を使って書け
解答
Windows の Explorer のような表示順ってことだね。
File[] files = { 〜 }; Arrays.sort(files, (first, second) -> { if (first.isDirectory() && !second.isDirectory()) return -1; else if (!first.isDirectory() && second.isDirectory()) return 1; else return first.getPath().compareTo(second.getPath()); });
ラムダ式は、ロジックが複雑になったら中かっこ{}
を使えばいいので楽ちんです。