用Java列出文件的最佳方法,按修改的日期排序?我想在目录中得到一个文件列表,但是我想对它进行排序,使最老的文件是第一位的。我的解决方案是调用File.listFiles,然后使用基于File.lastModify的列表,但我想知道是否有更好的方法。编辑:按照建议,我目前的解决方案是使用匿名比较器: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());
} });
3 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
守着星空守着你
TA贡献1799条经验 获得超8个赞
class Pair implements Comparable { public long t; public File f; public Pair(File file) { f = file; t = file.lastModified(); } public int compareTo(Object o) { long u = ((Pair) o).t; return t < u ? -1 : t == u ? 0 : 1; }};// Obtain the array of (file, timestamp) pairs.File[] files = directory.listFiles();Pair[] pairs = new Pair[files.length]; for (int i = 0; i < files.length; i++) pairs[i] = new Pair(files[i]);// Sort them by timestamp.Arrays.sort(pairs);// Take the sorted pairs and extract only the file part, discarding the timestamp.for (int i = 0; i < files.length; i++) files[i] = pairs[i].f;
添加回答
举报
0/150
提交
取消