1

私は変更された日付で並べ替えられたディレクトリ内のファイルのリストを取得しようとしています。ここに私が使用しているコードがあります

public static void sortFilesByLastModifiedDate(ArrayList<String> myfiles) {
     String[] myfile = new String[myfiles.size()];
     myfile = myfiles.toArray(myfile);

     Comparator<File> comparator = new Comparator<File>() {
            @Override
            public int compare(File o1, File o2) {
                    return Long.valueOf(o1.lastModified()).
                            compareTo(o2.lastModified());
            }
        };
        Arrays.sort(myfile, comparator);

    }

Arrays.sort(myfile, comparator);コンソールにこのコードのエラーが表示されますsort(T[], Comparator<? super T>)タイプ配列のメソッドは引数に適用できません(String[], Comparator<File>)

これを解決する方法を提案してください。

4

3 に答える 3

2

オブジェクトを含むようにリストを変更するか、Fileオブジェクトを操作するようにコンパレータを変更してくださいString

前者のオプションをお勧めします。これにより、コンパレータにファイルを渡す前にファイルが存在することを確認できます。ファイルが存在しない場合にFile.lastModified()返されることに注意してください(これは予想外かもしれません)。0

コメントで述べたように、を使用してリストをソートできるCollections.sort()ため、配列に変換する必要はありません。

于 2013-07-10T12:21:25.930 に答える