下面的代码获取流并对其进行排序。如果存在应该应用的最大限制,它将应用它。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