Bir liste sıralamak için java lambda kullanıyorum.
nasıl tersine sıralayabilirim?
Bunu görene yazı ama Java'nın 8 lambda kullanmak istiyorum.
İşte bir hack olarak benim kod (* -1 kullandım)
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
yerineforEach
forEachOrdered
adından da anlaşılacağı gibi , “değişiklik zamanına göre sıralanmış” siparişe dayanan belirli sayıda yeni dosyayı atlamak istediğinizde karşılaşılan karşılaşma sırasına önem vermektedir .
-1 * answer
ileanswer
, sipariş onunla ne olduğunu tersine değişecektir-1 * ...
.