Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mendapatkan Senarai Fail Isih Tarikh di Java dengan Cekap?

Bagaimanakah Saya Boleh Mendapatkan Senarai Fail Isih Tarikh di Java dengan Cekap?

Linda Hamilton
Linda Hamiltonasal
2024-11-28 14:53:11282semak imbas

How Can I Efficiently Get a Date-Sorted List of Files in Java?

Mendapatkan Senarai Fail Isih Tarikh dalam Java

Soalan:
Pembangun sering menghadapi keperluan untuk menyenaraikan fail dalam direktori dan susun mereka berdasarkan tarikh terakhir mereka diubah suai. Satu pendekatan melibatkan penggunaan File.listFiles() dan menggunakan senarai menggunakan File.lastModified(). Namun, adakah kaedah yang lebih cekap?

Jawapan:

Pendekatan yang paling optimum ialah memanfaatkan pembanding tersuai bersama-sama dengan Arrays.sort().

File[] files = directory.listFiles();

Arrays.sort(files, new Comparator<File>() {
    public int compare(File f1, File f2) {
        return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
    }
});

Pendekatan ini memastikan fail diisih mengikut kronologi, dengan fail tertua dipaparkan dahulu. Ungkapan Long.valueOf(f1.lastModified()) menukar cap waktu kepada panjang, yang kemudiannya dibandingkan menggunakan compareTo(). Dengan menggunakan antara muka Comparator, fail diisih dengan elegan tanpa memerlukan kelas pembantu tambahan.

Adalah penting untuk ambil perhatian bahawa File.listFiles() tidak menjamin susunan fail yang dikembalikan. Oleh itu, menyusun tatasusunan secara eksplisit menggunakan pembanding yang disediakan adalah perlu.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Senarai Fail Isih Tarikh di Java dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn