Saya menggunakan java lambda untuk mengurutkan daftar.
bagaimana saya bisa mengatasinya secara terbalik?
Saya melihat posting ini , tetapi saya ingin menggunakan java 8 lambda.
Ini kode saya (saya menggunakan * -1) sebagai peretasan
Arrays.asList(files).stream()
.filter(file -> isNameLikeBaseLine(file, baseLineFile.getName()))
.sorted(new Comparator<File>() {
public int compare(File o1, File o2) {
int answer;
if (o1.lastModified() == o2.lastModified()) {
answer = 0;
} else if (o1.lastModified() > o2.lastModified()) {
answer = 1;
} else {
answer = -1;
}
return -1 * answer;
}
})
.skip(numOfNewestToLeave)
.forEach(item -> item.delete());
forEachOrdered
sebagai gantiforEach
forEachOrdered
, seperti namanya, peduli tentang pesanan pertemuan yang relevan seperti yang Anda ingin melewatkan sejumlah terbaru file yang bergantung pada “diurutkan berdasarkan waktu modifikasi” agar .
sort
→ skip
→ (tidak terurut) forEach
harus bekerja, benar dan bahwa memang diterapkan untuk bekerja dengan cara ini di JRE hari ini, tetapi kembali pada tahun 2015, ketika komentar sebelumnya dibuat, itu memang masalah (seperti yang Anda baca dalam pertanyaan ini ).
-1 * answer
dengananswer
, pesanan akan berubah untuk membalikkan apa itu dengan-1 * ...
.