Heim >Java >javaLernprogramm >Wie kann ich in Java effizient eine nach Datum sortierte Liste von Dateien erhalten?
Frage:
Entwickler stehen häufig vor der Notwendigkeit, Dateien in einem Verzeichnis aufzulisten und Sortieren Sie sie nach ihrem letzten Änderungsdatum. Ein Ansatz besteht darin, File.listFiles() zu verwenden und die Liste mithilfe von File.lastModified() neu zu sortieren. Gibt es jedoch eine effizientere Methode?
Antwort:
Der optimalste Ansatz besteht darin, einen benutzerdefinierten Komparator in Verbindung mit Arrays.sort() zu nutzen.
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()); } });
Dieser Ansatz stellt sicher, dass die Dateien in chronologischer Reihenfolge sortiert werden, wobei die ältesten Dateien zuerst erscheinen. Der Ausdruck „Long.valueOf(f1.lastModified())“ wandelt den Zeitstempel in einen Long-Wert um, der dann mit „compareTo()“ verglichen wird. Durch die Verwendung der Comparator-Schnittstelle werden die Dateien elegant sortiert, ohne dass zusätzliche Hilfsklassen erforderlich sind.
Es ist wichtig zu beachten, dass File.listFiles() die Reihenfolge der zurückgegebenen Dateien nicht garantiert. Daher ist eine explizite Sortierung des Arrays mithilfe des bereitgestellten Komparators erforderlich.
Das obige ist der detaillierte Inhalt vonWie kann ich in Java effizient eine nach Datum sortierte Liste von Dateien erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!