我想获取目录中的文件列表,但是我想对它进行排序,以使最早的文件排在第一位。我的解决方案是调用File.listFiles并仅基于File.lastModified重新创建列表,但是我想知道是否有更好的方法。
编辑:根据建议,我当前的解决方案是使用匿名比较器:
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()); } });
我认为您的解决方案是唯一明智的方法。获取文件列表的唯一方法是使用File.listFiles(),文档说明这不能保证返回文件的顺序。因此,您需要编写一个使用File.lastModified()的Comparator,并将其以及文件数组传递给Arrays.sort()。