Java中的Streams vs for循环迭代

时间:2018-04-12 05:42:05

标签: java

我刚刚开始学习Java 8,并希望在我的项目中实现Streams。但是有很多帖子都说Streams有性能开销。

如果我从数据库中获取了5-6条记录,并希望根据条件过滤掉其中几条记录,是否可以将列表转换为流,然后对其使用过滤器。 或者使用命令式样式编码,使用for循环迭代器。

1 个答案:

答案 0 :(得分:1)

首先,如果您可以在数据库端进行过滤,这将是最佳选择。 现在来看Stream vs lops论点请阅读以下文章。 https://jaxenter.com/java-performance-tutorial-how-fast-are-the-java-8-streams-118830.html  文章摘要可引用如下。

“是的,流有时比循环慢,但它们也可以同样快;它取决于具体情况。重点是顺序流不比循环快。如果你使用顺序流,那么你不要出于性能原因这样做;你这样做是因为你喜欢函数式编程风格。

那么,性能改进流的发明在哪里?到目前为止,我们只将循环与流进行比较。并行化怎么样?流的重点是易于并行化以获得更好的性能。“