我知道有很多与我类似的问题,但我没有得到任何答案(我觉得我错过了一些东西......)但无论如何:
我有一个 LinkedList 。在我的程序中,用户应该能够根据文件的最后修改时间对列表进行排序。
例如,我尝试根据这两个实现一些东西:在长长的文件列表中查找 3 个最近修改的文件,并在按上次修改排序的目录中获取文件?在我的程序中,但无论如何我似乎都没有对列表进行排序。
对于第一个链接:返回 1、-1 或 0 是什么意思?它实际上有什么作用,还是我应该添加一些代码来将其向上或向下移动?
我想其中任何一个都是我应该使用的,对吧?我想知道该代码是否足够,还是我必须添加更多内容才能使其正常工作?
注意。我想在现有类中创建一个新方法。
所以这就是我试图做的:
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
}
编辑 我最大的问题(也许?)是当我的方法完成时,它确实更新了视图,但不是以正确的方式:“旧”列表仍然是相同的,但在底部有一些不应该的东西是... :
- 文件1.jpg
- 文件2.jpg
- ..
- ..
- ..
- 图像列表.txt
- 垃圾桶
- 源代码
- 设置
- 项目
- 类路径
(imagelist.txt 是存储图像路径的文本文件),出于某种原因,这是我在更新视图后可以看到的列表。
编辑 2 File[] file = new File(".").listFiles();
输出:[Ljava.io.File;@3e2a9a49 所以我想这将是实际问题......?我试图做的是将文件从我的 LinkedList 放到这个数组中,但我想我做错了什么,从第一个链接得到这个片段......如果这是任何地方,那么合适的方法是什么靠近正确的路要走。
提前谢谢你,希望我的问题有道理,你们不要过多地评判我:)我知道我现在让这很混乱......