问题:
开发者经常遇到需要列出目录中的文件并且根据上次修改日期对它们进行排序。一种方法涉及利用 File.listFiles() 并使用 File.lastModified() 对列表进行排序。但是,有没有更有效的方法?
答案:
最佳方法是结合使用自定义比较器和 Arrays.sort()。
File[] files = directory.listFiles(); Arrays.sort(files, new Comparator<File>() { public int compare(File f1, File f2) { return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified()); } });
此方法可确保文件按时间顺序排序,最旧的文件首先出现。 Long.valueOf(f1.lastModified()) 表达式将时间戳转换为 long,然后使用compareTo() 进行比较。通过利用 Comparator 接口,文件可以优雅地排序,而不需要额外的帮助器类。
需要注意的是,File.listFiles() 不保证返回文件的顺序。因此,使用提供的比较器显式对数组进行排序是必要的。
以上是如何在Java中高效地获取按日期排序的文件列表?的详细内容。更多信息请关注PHP中文网其他相关文章!