为什么在这段代码中Stream.limit不能按预期工作?
List integer = Stream.generate(new Supplier() {
int i = 0 ;
@Override
public Integer get() {
return ++i;
}
}).filter(j -> j < 5)
.limit(10) // 注意这里调用了limit方法
.collect(Collectors.toList());
与我的预期相反,collect
方法从未返回。在filter
之前设置limit
会产生预期的结果。为什么?