我知道有很多类似的问题,因为我的文件,但我还没有与这些问题的答案(我觉得我失去了一些东西......)但不管怎么说远矣:排序链表<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的处理是什么?它实际上是否做了什么,或者我应该添加一些代码来将它在列表中向上或向下移动?
我想这些都是我应该使用的东西,对吧?我想知道如果这个代码足够了,还是我不得不添加一些东西来让它工作?
注意:我想在现有的类中创建一个新的方法。
所以这是我试图做的:
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
- 斌
- SRC
- 设置
- 项目
- 类路径
(imagelist.txt是一个文本文件,其中的图像epaths被存储),出于某种原因,这是我在更新视图后可以看到的列表。
编辑2 File [] file = new File(“。”)。listFiles();
输出:[Ljava.io.File; @ 3e2a9a49 所以我想这应该是实际问题......?我想要做的是将我的LinkedList中的文件放到这个数组中,但我想我做错了什么,从第一个链接中得到了这个片段......如果这是在任何地方靠近正确的路要走。
预先感谢您,希望我的问题做了一些感觉和你们不要判断我太多:) 我知道我做了这个现在很混乱...
创建一个合适的比较器并将它传递给Collections.sort()。 http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort%28java.util.List,%20java.util.Comparator%29 –
您已尝试实施某人代码,它不起作用?为什么不张贴一个最小工作示例,我们可以帮助解决出错的地方。 – Pureferret