小编Lan*_*ani的帖子

有条件地将操作添加到Java 8流

我想知道我是否可以根据流之外的某种条件设置向流添加操作.例如,如果我的limit变量不等于,我想向流添加限制操作-1.

我的代码目前看起来像这样,但我还没有看到以这种方式使用流的其他示例,其中Stream对象被重新分配给应用于自身的中间操作的结果:

// Do some stream stuff
stream = stream.filter(e -> e.getTimestamp() < max);

// Limit the stream
if (limit != -1) {
   stream = stream.limit(limit);
}

// Collect stream to list
stream.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

如此stackoverflow帖子中所述,在调用终端操作之前,实际上不会应用过滤器.由于我在调用终端操作之前重新分配了流的值,上面的代码仍然是使用Java 8流的正确方法吗?

java limit java-8 java-stream

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

limit ×1