リストをソートするためにjava lambdaを使用しています。
逆に並べ替えるにはどうすればよいですか?
この投稿を見ましたが、Java 8ラムダを使用したいと思います。
これがハックとしての私のコードです(私は* -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());
forEachOrdered
代わりに使用したいことを示唆していますforEach
forEachOrdered
その名前が示すように、「変更時刻でソートされた」順序に依存する特定の数の最新ファイルをスキップしたいので、関連する遭遇順序に注意します。
-1 * answer
とanswer
、順序はと逆になり-1 * ...
ます。