日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Java实现按名称、日期、大小对文件进行排序

發布時間:2025/3/21 61 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java实现按名称、日期、大小对文件进行排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

按文件名稱排序:

public static void orderByName(String filePath) {File file = new File(filePath);File[] files = file.listFiles();List<File> fileList = Arrays.asList(files);fileList.sort(new Comparator<File>() {@Overridepublic int compare(File o1, File o2) {if (o1.isDirectory() && o2.isFile()) {return -1;}if (o1.isFile() && o2.isDirectory()) {return 1;}return o1.getName().compareTo(o2.getName());}});for (File file1 : files) {System.out.println(file1.getName());}}

按文件更改日期排序:

public static void orderByDate(String filePath) {File file = new File(filePath);File[] files = file.listFiles();Arrays.sort(files, new Comparator<File>() {public int compare(File f1, File f2) {long diff = f1.lastModified() - f2.lastModified();if (diff > 0)return 1;else if (diff == 0)return 0;elsereturn -1;//如果 if 中修改為 返回-1 同時此處修改為返回 1 排序就會是遞減}});for (int i = 0; i < files.length; i++) {System.out.println(files[i].getName());System.out.println(new Date(files[i].lastModified()));}}

按文件大小排序:

public static void orderByLength(String filePath) {File file = new File(filePath);File[] files = file.listFiles();List<File> fileList = Arrays.asList(files);fileList.sort((f1, f2) -> {//這里可以使用lambda表達式long diff = f1.length() - f2.length();if (diff > 0)return 1;else if (diff == 0)return 0;elsereturn -1;//如果 if 中修改為 返回-1 同時此處修改為返回 1 排序就會是遞減});for (File file1 : files) {if (file1.isDirectory()) continue;System.out.println(file1.getName() + ":" + file1.length());}}

Comparator使用了策略模式,定義一系列的算法,把它們一個個封裝起來, 并且使它們可相互替換。
實現Comparator接口有很多種不同的策略。名稱、日期、文件大小是策略。

總結

以上是生活随笔為你收集整理的Java实现按名称、日期、大小对文件进行排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。