Estou usando o java lambda para classificar uma lista.
como posso classificá-lo de maneira inversa?
Eu vi esse post , mas quero usar o java 8 lambda.
Aqui está o meu código (eu usei * -1) como um 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());
forEachOrderedvez deforEach
forEachOrderedcomo o nome sugere, preocupações sobre a ordem encontro que é relevante como você quiser pular um certo número de mais novos arquivos que conta com a “classificado por data de modificação” fim .
sort→ skip→ (não ordenado) forEachdeve funcionar está correto e que de fato foi implementado para funcionar dessa maneira nos JREs de hoje, mas em 2015, quando os comentários anteriores foram feitos, foi realmente um problema (como você pode ler nesta pergunta ).
-1 * answerporanswer, o pedido mudará para o reverso do que era-1 * ....