Estoy usando Java Lambda para ordenar una lista.
¿Cómo puedo ordenarlo de forma inversa?
Vi esta publicación , pero quiero usar java 8 lambda.
Aquí está mi código (usé * -1) como 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());
forEachOrdered
lugar deforEach
forEachOrdered
como su nombre indica, se preocupa por fin encuentro que es relevante ya que desea omitir un cierto número de nuevos archivos que se basa en la “ordenados por fecha de modificación” fin .
sort
→ skip
→ (sin ordenar) forEach
, es correcta y que de hecho se implementa para funcionar de esta manera en los JRE de hoy, pero en 2015, cuando se hicieron los comentarios anteriores, fue de hecho un problema (como puede leer en esta pregunta ).
-1 * answer
conanswer
, el orden cambiará a reverso de lo que era-1 * ...
.