我知道有很多類似的問題,因爲我的文件,但我還沒有與這些問題的答案(我覺得我失去了一些東西......)但不管怎麼說遠矣:排序鏈表<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