私と同じような質問がたくさんあることは知っていますが、それらの答えはどこにもありません(何かが欠けているように感じます...)しかし、とにかく:
私は LinkedList を持っています。私のプログラムでは、ユーザーはファイルの最終変更時刻に従ってリストをソートできるはずです。
たとえば、これら2つに従って何かを実装しようとしました:ファイルの長いリストで最近変更された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 は、イメージパスが保存されているテキストファイルです)、何らかの理由で、ビューを更新した後に表示されるリストです。
EDIT 2 File[] file = new File(".").listFiles();
出力: [Ljava.io.File;@3e2a9a49 だから、これは実際の問題だと思います...? 私がやろうとしていたのは、LinkedList からこの配列にファイルを配置することでしたが、何か間違ったことをしたと思います。最初のリンクからこのスニペットを取得しました...これがどこかにある場合、これを行う適切な方法は何でしょうか正しい道の近く。
前もってありがとう、私の質問がある程度理にかなっており、皆さんが私をあまり判断しないことを願っています:)私はこれをかなり混乱させたことを知っています...