ラムダの例外処理のめんどくささよ。
JavaはStream APIが増えたので古き良き方法を使うか、最近のナウい方法を使うかで混乱しますね。
単純な処理や例外処理をきっちり書けるならStream APIを使うほうが良い気がしますが、
それほど作り込む必要のない(作り込めない)のであれば、旧来の方法を使うほうが良い気がします。
ディレクトリ配下のファイル一覧をアルファベットの昇順/降順に並び替える方法
で、今回の主題。
ディレクトリ配下のファイル一覧をアルファベットの昇順/降順に並び替える方法ですが、
Stack Over Flowに答えがありますが、うーんな感じなのでまとめ。
公式にも記載がある通り、listFilesメソッドは、フィルタの有無にかかわらず、順序を保証しません。また、取得時に並び順の指定もできません。
[File.html#listFiles](https://docs.oracle.com/javase/jp/7/api/java/io/File.html#listFiles())
ですが、listFilesの戻り値はFile[]なので、Arrays.sort()でソートできます。
中身を見たわけじゃありませんが、FileクラスのcompareToがgetNameかなんかで実装されてるかな。
なので、以下のような記述でアルファベットの昇順/降順に並び替えることできます。
File[] files = new File("ディレクトリパス").listFiles();
Arrays.sort(files); // 昇順 1.jpg, 2.jpg, 3.jpg
Arrays.sort(files, Collections.reverseOrder()); // 降順 3.jpg, 2.jpg, 1.jpg
コメント