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

java-8中的流方法是如何实现的?

莘光华
2023-03-14

当我在试验新的java-8 Stream时,我想看看它的方法是如何实现的,所以我看了一下Stream类的实现,发现所有的方法都是抽象的。

我的问题是像distinct()map()这样的方法是如何工作的?必须在某个地方有具体的实现,这些方法在哪里?

共有1个答案

齐元章
2023-03-14

经过一些调查,我发现我要找的类是Refer cePipeline,正如Brian Goetz所说,它是从AbstractPipeline扩展而来的,最好在之前查看它。参考管道

当我们通过数组创建流时,我们从这个类中得到一个对象。stream()或在列表对象上调用stream()或任何其他方式。

所以这只是基本的多态性。

 类似资料:
  • 我试图理解方法是如何精确地处理并行流的,我不理解为什么下面的代码不返回这些字符串的串联。 代码如下: 该代码仅适用于顺序流,但对于并行流,它不会返回串联。每次输出都不同。有人能解释一下那里发生了什么事吗?

  • 浏览Brian Goetz的这篇非常有趣但只有一年历史的演示文稿-在链接的幻灯片中,他介绍了一个流API中的方法,该方法应该聚合列表的元素(?)到贴图(给定默认初始值和操作该值的方法(也适用于重复的关键点)-请参见演示文稿中的下一张幻灯片)。 显然,流API中没有这样的方法。在Java 8中是否还有其他类似的方法?

  • 假设我有一个类和一个方法 现在,我想为由流传递的的每个实例调用foo,如下所示: 问题:如何正确处理异常?代码在我的机器上没有编译,因为我没有处理foo()可能引发的异常。的在这里似乎没有用。这是为什么?

  • 问题内容: 我有一个包含以下内容的文本文件: 对于每一个“要素”我总是有,而且,我需要阅读。 如果可能的话,我想使用Java 8流。 是否可以模拟switch语句的行为? 问题答案: 解析此类文件的最佳方法(不使用专用的第三方库)是通过regex API及其前端类。不幸的是,目前缺少通过Stream API实现它的最佳操作。即,并且还不存在。因此,除非我们要等到Java 9,否则我们必须为Java

  • 问题内容: 在布莱恩·格茨(Brian Goetz)的这个非常有趣但只有一年历史的演示中,他在幻灯片链接中介绍了应该在Stream API中提供的一种方法,该方法应该将列表(?)的元素聚合到地图(给定默认初始值)以及操作该值的方法(也适用于重复键)-请参见演示文稿中的下一张幻灯片。 显然,Stream API中没有这种方法。还有另一种方法可以在Java 8中执行类似操作吗? 问题答案: 聚合操作可

  • 问题内容: 我想实施一个。 我不想只使用,因为我必须实现大量的方法。 可以避免吗? 更具体的,我怎么能流,以及例如: 问题答案: JDK的标准实现是内部类,您不能直接实例化它。 相反,你可以使用,以及各种1,2种静态工厂方法来创建默认实现的实例。 使用分离器可能是最强大的方法,因为它可以让您懒惰地提供对象,同时如果您的源可以分为多个块,则还可以实现有效的并行化。 此外,如果需要实现自己的 有状态中