Я хочу сортировать массив файлов по lastModefiedTime от самого старого до самого нового (первый элемент должен быть самым старым и последним элементом самого нового).Сортировка массивов файлов по 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");
}
}
не могли бы вы рассказать мне, пожалуйста, что я сделал не так?
Как насчет преобразования массива в «Список», а затем сортировки списка в однострочном пространстве с использованием Java 8 Lambda? https://dzone.com/articles/using-lambda-expression-sort – Magnilex
Я действительно не знаю Лямбду, я никогда не использовал его! – user3232446