【发布时间】:2016-03-01 16:55:35
【问题描述】:
我想按 lastModefiedTime 从最旧到最新对文件数组进行排序(第一个元素必须是最旧的,最后一个元素是最新的)。
我写了这个方法,但是没有用!!
private static void swap(File[] files,int a, int b){
File h = files[a];
files[a]=files[b];
files[b]=h;
}
public static void fillBoxList(String path){
File dir = new File(path);
File[] files = dir.listFiles();
if (files != null) {
//Box.addToFilesArray(directoryListing[0]);
// print the List before Sorting
for(int i =0;i<dfiles.length;i++){
Log.i("LastModDate", new Date(directoryListing[i].lastModified())+"");
}
//Beginn of Sorting
for (int i =1;i<files.length;i++) {
Date lastModdate1 = new Date(files[i-1].lastModified());
Date lastModDate2 = new Date(files[i].lastModified());
if(lastModdate1.compareTo(lastModDate2)>1){
swap(files,i-1,i);
}
}
// print the List after Sorting
for(int i =0;i<directoryListing.length;i++){
Log.i("SortedLastModDate", new Date(directoryListing[i].lastModified())+"");
}
} else {
Log.e("DircError","directory dont exists");
}
}
你能告诉我我做错了什么吗?
【问题讨论】:
-
如何将数组转换为
List,然后使用Java 8 Lambda 对列表进行单行排序? dzone.com/articles/using-lambda-expression-sort -
我真的不知道 Lambda,我没用过!
标签: java android algorithm sorting