Я знаю, что есть много похожих вопросов, как у меня, но я не получил ни одного ответа с этими ответами (я чувствую, что мне что-то не хватает ...) Но в любом случае:Сортировка LinkedList <File> в соответствии с файлами Последнее изменение времени
У меня есть LinkedList. В моей программе пользователь должен иметь возможность сортировать список в соответствии с последним измененным временем файлов.
Я, например, попытался реализовать что-то в соответствии с этими двумя: Finding the 3 most recently modified files in a long list of files и Get files in a directory sorted by last modified? в моей программе, но, похоже, я все равно не сортировал список.
Для первой ссылки: какая сделка с возвратом 1, -1 или 0? Делает ли это на самом деле что-либо, или я должен добавить код, чтобы переместить его вверх или вниз по списку?
Я думаю, что любой из них - это то, что я должен использовать, правильно? Мне было интересно, достаточно ли этого кода, или мне нужно добавить что-то еще, чтобы заставить его работать?
NB. Я хотел бы создать новый метод в существующем классе.
Так вот то, что я пытался сделать:
public static final Comparator<File> lastModified = new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return o1.lastModified() == o2.lastModified() ? 0 : (o1.lastModified() < o2.lastModified() ? 1 : -1);
}
};
public void testFileSort() {
File[] file = new File(".").listFiles();
Arrays.sort(file, lastModified);
//a snippet to actually update what the user sees
}
РЕДАКТИРОВАНИЯ Моей самой большой проблемы (? Возможно) является то, что, когда мой метод выполняется, он обновляет вид, но не в праве так: «старый» список все еще то же самое, но на дне есть что-то там не должно быть ...:
- file1.jpg
- file2.jpg
- ..
- ..
- ..
- imagelist.txt
- бин
- ЦСИ
- настройки
- проект
- классам
(imagelist.txt это текстовый файл, в котором epaths), по какой-то причине это список, который я вижу после обновления представления.
EDIT 2 Файл [] file = new Файл ("."). ListFiles();
Выход: [Ljava.io.File; @ 3e2a9a49 Так что, я думаю, это была бы АКТУАЛЬНАЯ проблема ...? То, что я пытался сделать, это поместить файлы из моего LinkedList в этот массив, но я думаю, что я сделал что-то не так, получил этот фрагмент из первой ссылки ... Каким будет подходящий способ сделать это, если это где угодно недалеко от надлежащего пути.
Заранее спасибо, надеюсь, что мой вопрос сделал какой-то смысл, и вы, ребята, не судите меня слишком много :) Я знаю, что я сделал это совершенно сбивает с толку теперь ...
создать соответствующий 'Comparator' и передать его в' Collections.sort() '. http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort%28java.util.List,%20java.util.Comparator%29 –
Вы пытались реализовать некоторые кода, и он не работает? Почему бы не опубликовать минимальный рабочий пример, и мы можем помочь решить, где все пошло не так. – Pureferret