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

流中的非终端forEach()?

诸葛苏燕
2023-03-14

有时,在处理Java stream()时,我发现自己需要一个非终端forEach()来触发副作用,但不终止处理。

我怀疑我可以用类似.map(item->f(item))这样的方法来实现这一点,方法f执行副作用并将项目返回到流中,但这似乎有点假。

共有1个答案

司空健
2023-03-14

是的。有。它称为peek()(来自JavaDoc的示例):

Stream.of("one", "two", "three", "four")
     .peek(e -> System.out.println("Original value: " + e))
     .filter(e -> e.length() > 3)
     .peek(e -> System.out.println("Filtered value: " + e))
     .map(String::toUpperCase)
     .peek(e -> System.out.println("Mapped value: " + e))
     .collect(Collectors.toList());
 类似资料:
  • 问题内容: 我的问题很简单: 编译器是否将final类中的所有方法都视为final本身?将关键字添加到最终类中的方法是否有效果? 我知道最终方法更有可能被内联,这就是我要问的原因。 提前致谢。 问题答案: 没错,final类中的所有方法都隐式为final。 看这里: “请注意,您也可以将整个类声明为final。声明为final的类不能被子类化。例如,在创建不可变类(如String类)时,这特别有用

  • 我在运行OS X Yosemite 10.10.3版本的MacBook Pro上,我在TextMate 2.0-beta.7.4版本中编写代码,所有的heroku和hubot都是最新版本。 在一堂课中,我们必须在计算机上安装Hubot,以便对终端中的代码进行本地测试。一旦代码是好的,然后我们把它推到Heroku并用另一个bot测试它。然后,如果这个bot很好,老师就推到git,我们就可以在slac

  • 下面是我的通道使用者的方法。为了保护无辜者,一些名字被改了。 因此,包装了许多,每个都有一个关联的Classify请求和一个关联的Validate请求。我们希望1)转换为,2)将转换为一系列,3)为每个运行两个下游请求,4)将所有对象聚合为一个整体响应,5)向客户机发送一个响应。 我遇到问题的地方是方法,它似乎从来没有执行过。每次尝试涉及的内容时,似乎总是失败,这次也不例外。 、相当简单,似乎运行

  • 我通过自制软件在macOS 10.15中安装了Saxon。现在当我尝试 网旧金山。撒克逊人。使改变 我得到 zsh:找不到命令:net.sf.saxon.变换 我做错了什么? 谢谢,geb

  • 本文向大家介绍什么是PowerShell中的终止和非终止错误?,包括了什么是PowerShell中的终止和非终止错误?的使用技巧和注意事项,需要的朋友参考一下 Powershell执行脚本或命令时会生成两种类型的错误。终止错误和非终止错误。 终止错误-该错误是由您创建的脚本,函数或命令生成的,并且会停止或停止脚本的执行,从而导致下一行中的命令无法执行。要处理此错误,需要适当的机制,否则将显示错误消

  • 问题内容: 考虑以下代码: 终端操作(如)是否关闭已打开的基础文件? 请参阅Files.list的javadoc的相关部分: 返回的流封装了DirectoryStream。如果需要及时处理文件系统资源,则应使用try-with- resources构造来确保在流操作完成之后调用流的close方法。 如果不调用,那么在生成可维护代码时最好的替代方法是什么? 问题答案: 终端操作员不会自动关闭流。考虑