如何使用Java8 lambda反向排序流?

我正在使用Java lambda对列表进行排序。

如何以相反的方式对其进行排序?

我看到了这篇文章,但是我想使用java 8 lambda。

这是我的代码(我用* -1)作为破解

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());

回答:

您可以调整在Java中如何以降序对ArrayList排序的方法中链接的解决方案通过将其包装在lambda中:

.sorted((f1, f2) -> Long.compare(f2.lastModified(), f1.lastModified())

请注意, f2 是的第一个参数Long.compare,而不是第二个,因此结果将相反。

以上是 如何使用Java8 lambda反向排序流? 的全部内容, 来源链接: utcz.com/qa/418563.html

回到顶部