J'utilise java lambda pour trier une liste.
comment puis-je le trier de manière inversée?
J'ai vu ce post , mais je veux utiliser java 8 lambda.
Voici mon code (j'ai utilisé * -1) comme un hack
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());
forEachOrderedplace deforEach
forEachOrderedcomme son nom l' indique, soins sur ordre de rencontre qui est pertinent que vous voulez sauter un certain nombre de nouveaux fichiers qui repose sur le « trié par date de modification » ordre .
sort→ skip→ (non ordonné) forEachdevrait fonctionner, est correcte et qu'elle est effectivement implémentée pour fonctionner de cette manière dans les JRE d'aujourd'hui, mais en 2015, lorsque les commentaires précédents ont été faits, il était en effet un problème (comme vous pouvez le lire dans cette question ).
-1 * answerparanswer, l'ordre changera pour inverser ce qu'il était avec-1 * ....