当前位置: 首页 > 知识库问答 >
问题:

为什么stream.peek()在没有终端操作的情况下不产生输出?[副本]

洪飞驰
2023-03-14

如果一个中间操作消耗了流的一些元素,之后使用了peek(),但没有终端操作,那么peek()是否还应该产生一些输出呢?

共有1个答案

隆选
2023-03-14

如果中间操作消耗了流的某些元素

这是正确的。

但是,没有中间操作会消耗流的元素,因此,您知道。技术上最好是正确的。

someCollection.stream().map(stuff).flatMap(otherStuff).filter(whatever).limit(20);

如果你从来不开水龙头,放多少花哨的小扇叶和其他水动力玩具都无关紧要。他们谁也不会做什么。

 类似资料:
  • 主要问题: 我试图在网页上打印错误,如果连接到MySQL服务器不做。为此,我写了一个错误的库名

  • 我已经将Java项目从Eclipse导出为“可运行的JAR文件”,并带有“将所需库提取到生成的JAR中”。当我尝试通过双击启动它时,什么也没有发生,只是文件闪烁。当我尝试像那样从终端运行它时,它工作得很好。

  • 我有一个未来链,它获取一个资源,使用它来检索一些数据,然后修改该数据并返回结果(仍然在未来)。 我希望在返回未来链之前释放资源,但不必插入更接近的样板代码(即,将中间结果放入某个变量中,然后将其作为链其余部分的结果返回)。 我在找这样的东西:

  • 阅读后https://www.airpair.com/java/posts/spring-streams-memory-efficiency,我很想从数据库中导出结果,但正如我与一位同事讨论的那样(他在那篇文章中添加了cfr注释),需要记住使用try with resources构造来避免任何内存泄漏。 为什么Java 8库不负责在每次终端操作后关闭流本身(而不必将流实例化包装在资源试用中)

  • 我不明白为什么< code>gcc -S -m32会产生这些特定的代码行: C 代码: 它给出以下输出:

  • 问题内容: 我在编写一个简单的shell脚本,发现我的shell脚本不需要shebang行 如果我授予脚本执行权限,并使用执行。运行正常。 我正在使用shell,实际上是指向。 我知道shebang行用于告诉shell在您的其余脚本中使用哪个解释器。 如果我错过了perl中的shebang行,请赋予执行权限并运行,它不起作用。 这里到底发生了什么?如果使用,实际上何时需要shebang行? 问题答