Java 람다를 사용하여 목록을 정렬하고 있습니다.
역순으로 정렬하려면 어떻게해야합니까?
이 게시물 을 보았지만 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 * ...
.