下面的代碼獲取流並對其進行排序。如果存在應該應用的最大限制,它將應用它。Java流根據條件限制收集元素
if(maxLimit > 0) {
return list.stream().sorted(comparator).limit(maxLimit).collect(Collectors.toList());
} else {
return list.stream().sorted(comparator).collect(Collectors.toList());
}
//maxLimit, list, comparator can be understood in general terms.
在這裏,如果在內部,限制操作存在,否則它不存在。其他在線操作相同。
當maxLimit大於零時,有什麼辦法可以應用限制嗎?在上面提供的代碼塊中,重複相同的邏輯,除了一個塊中的限制操作。
難道這是與Java 9'做效率低下takeWhile()'?我想答案是否定的,因爲takeWhile在流中操作並且是無狀態的....!? – schneida