Java 中创建流的 10 种方法2025年1月6日 | 阅读7分钟 可以使用 Stream API 来处理对象集合,Stream API 于 Java 8 首次发布。Stream 是一个可以以多种方式流水线处理以获得不同结果的项的集合。 Java Stream 的特点是
创建 Stream 的不同方法 方法:使用 Collections算法 步骤 1:获取集合 步骤 2:使用 Collection.stream() 函数从集合创建顺序 Stream。 步骤 3:打印 Stream 实施文件名:SequentialStream.java 输出 Hello Welcome to the World! 方法:从指定值创建 Stream可以使用 t 值通过 Stream.of(T…t) 方法构建 Stream,其中 t 是元素。此方法的结果是一个包含 t 元素的顺序 Stream。 实施文件名:StreamSpecifiedValues.java 输出 11 22 33 44 55 66 77 88 99 方法:使用 Arrays.stream() 创建 Stream可以使用 Stream.of() 和 Arrays.stream() 方法从指定的数组创建顺序 Stream,这些方法通常会一起使用。当使用非原始类型 T 调用这些方法中的任何一个时,都会返回一个 Stream。 实施文件名:ArrayStream.java 输出 Hello Welcome to World! 方法:使用 Stream.of() 创建 Stream这是一个非干扰操作,它会返回一个新的 Stream,同时也会对从 Stream 中获取的组件进行处理。 实施文件名:StreamOFCreation.java 输出 Hello Welcome to World! 方法:使用 Stream.builder() 创建 Streambuild() 方法将生成 Stream 的实例;否则,当需要在语句的正确部分显式给出所需类型时,将使用 builder() 方法。 实施文件名:StreamStringBuilder.java 输出 Hello Welcome to the World! 方法:使用 Stream.iterate() 创建无限 Streamiterate() 方法返回一个无限的顺序有序 Stream,它是通过将函数 f 重复应用于种子元素来创建的。iterate 方法的第一个参数是下面示例中结果 Stream 的第一个元素。为了创建每个后续元素,函数会应用于前一个元素。 实施文件名:IterateStream.java 输出 3 9 81 6561 43046721 -501334399 2038349057 方法:使用 Stream.generate() 方法创建无限 Stream生成的 Stream 是无限的,并且可以通过 generate() 方法生成,该方法以给定输入为参数。因此,要限制它,可以给出所需的大小,或者让 generate() 方法一直运行直到达到内存限制。 实施文件名:GenerateStream.java 输出 0.8285302774864066 0.6259903293195835 0.28498534663189434 0.06681813318465979 0.6526779164446666 0.36696884550384856 方法:使用 Predicate 从 Pattern 创建 StreamJava 8 通过 Pattern 的 asPredicate() 方法创建了一个布尔值谓词函数,并用于模式匹配。 实施文件名:StreampatternPredicate.java 输出 to the 方法:从 Iterator 创建 StreamCollection Framework 使用 Java Iterator 一次获取一个元素。顺序 Stream 只能借助 splitterator 创建。因此,在此技术中也使用了 Spliterator。然而,在这种情况下,使用从 Iterator 创建的 Iterable 作为 Spliterator 的源。因此,首先使用 Iterator 来构建 Iterable。接下来,将 Spliterator 直接作为 Iterable.spliterator() 传递给 stream() 方法。 实施文件名:IteratorStream.java 输出 Hello Welcome to World! 方法:从 Iterable 创建 Stream由于 Iterable 接口没有自己的 stream() 方法,因此它们是为此而设计的。所需要做的就是将其传递给 StreamSupport.stream() 函数以从提供的 Iterable 对象获取 Stream。将 Iterable 转换为 Stream 更简单。可以使用 Iterable 的默认方法 Spliterator() 来获取 Spliterator 的实例,然后将其转换为 Stream。 注意:Iterable 不是 Collection 的实例;相反,当它需要从 Spliterator 获取顺序 Stream 时,此方法会内部调用 Collection.stream() 方法。否则,它会调用 StreamSupport.stream()。实施文件名:IterableStream.java 输出 Hello Welcome to World! |
Java 是一种广泛使用的编程语言,因其多功能性、易用性和健壮性而受到欢迎。然而,Java 开发人员遇到的最常见问题之一是空指针异常。在本文中,我们将仔细研究这个异常...
阅读 4 分钟
在 Java 中,银行家算法是一种死锁避免和资源分配算法。该算法通过模拟预先确定的所有资源的可能最大数量的分配来测试安全性。然后,在决定是否允许分配继续之前,它会创建一个...
5 分钟阅读
? 在前面的章节中,我们学习了 Apache POI 库。它是一个处理 Microsoft Office 文档的 API。使用 POI 库,我们可以轻松创建 DOC、DOCX、XLS、XLSX、PPT 和 PPTX 文件。如果我们想创建 PDF...
7 分钟阅读
String 类的 regionMatches() 方法有两种变体,可用于测试两个字符串区域是否匹配或相等。此方法有两种变体,即一种忽略大小写,另一种区分大小写。regionMatches() 方法用于...
阅读 4 分钟
在 Java Web 开发中,“Handler dispatch failed”错误是在使用 Spring MVC 等 Web 框架时遇到的常见问题。当应用程序的请求处理过程中出现无限循环或递归时,通常会发生此错误,从而导致 java.lang.StackOverflowError。在...
阅读 3 分钟
在编程中,安全和控制流是在开发应用程序时必须考虑的两个主要问题。有各种控制特性,例如 final 和 protected 关键字的使用,限制用户访问变量和方法。Java 15 引入了一个新的...
5 分钟阅读
维吉尼亚密码使用一种基本的 polyalphabetic 替换技术来加密字母文本。它比传统的凯撒密码更安全,因为它使用关键字通过不同的量来移动明文中的字母。在本节中,我们将解释维吉尼亚...
5 分钟阅读
使用最少数量的矩形“覆盖”曼哈顿天际线 使用最少数量的矩形“覆盖”曼哈顿天际线 “石墙”问题属于传统的计算问题,其目标是估算建造不同高度的墙所需的方块数量。墙由数组描述...
5 分钟阅读
Stream filter(Predicate predicate) 提供了一个流,其中包含满足所提供谓词的流中的元素。这是一个分步过程。这些操作总是惰性的,这意味着调用 filter() 实际上不会过滤任何内容,而是创建一个包含...
阅读 3 分钟
在本节中,我们将通过不同的方法学习如何使用 Java 查看二叉树的底部视图。在二叉树的底部视图中,我们只打印那些当二叉树...时可见的节点。
5 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India