Java 8 流速查表 基本流方法 查找器 匹配器 流修饰器 流特征器

2025-06-07

Java 8 Stream 备忘单

基本流方法

发现者

匹配器

流修饰符

流特征器

最初发布于www.gunnargissel.com

流是处理集合中的对象的一种方式。

流允许人们直接说出他们最终想要得到什么。相比之下,命令式方法则要求人们直接说出如何收集他们最终想要得到的东西。

流还允许简单的多线程。

基本流方法

有一些控制流交互的基本方法。这些方法背后的基本思想是操作对象集合,以便只留下您需要的对象。

如果我必须选择使用 Stream 的必不可少的方法,我会说Map、、FilterCollect

过滤器
过滤器采用,并仅留下为真的Predicate值。Predicate

Map
Map 接受一个Function,并将流中的值从一种类型转换为另一种类型

Sorted
Sorted 采用Comparator,并根据 中指定的顺序对流中的值进行排序Comparator

Collect
Collect停止流并将流中的值放入某种类型中Collection,比如List

toArray
toArray()停止流并返回包含流中的元素的数组。

发现者

使用集合时,一个常见的任务是从流中获取元素。它们通常在Filterand之后使用Map,以确保找到的元素符合某些条件并且属于所需的类型。

findAny()
findAny()返回一个Optional包含流中元素的对象(如果流为空,则返回空)。这里不遵循顺序,尤其是在并行流的情况下。

findFirst()
findFirst()返回一个Optional包含流中第一个元素的数组(如果流为空,则返回空)。使用此方法时,顺序是被遵循的。

max(Comparator comparator)
max返回给定流的最大元素Comparator

min(Comparator comparator)
min返回给定流的最小元素Comparator

匹配器

另一个常见任务是判断对象是否满足某些给定条件。这些“匹配器”方法指示流中的对象是否全部、部分或全部满足给定条件。

allMatch(Predicate pred)
返回true流中所有元素是否匹配Predicate

anyMatch(Predicate pred)
返回true流中是否有任何元素与Predicate

noneMatch(Predicate pred)如果流中没有元素
truePredicate

流修饰符

有时,一个流可能并非完全“正确”。这些方法会创建一个与旧流略有不同的新流,这些新流可能具有不同的特征,例如不同的长度、不同的起始点,或者保证只包含唯一的对象。

distinct()创建一个仅包含不同元素(基于)的
distinct()新流.equals

limit(int maxSize)
limit(maxSize)通过将原始流截断为不长于 maxSize 来创建新流。

skip(long n)
跳过流的前 n 个元素,并使用其余元素创建一个新流

sorted()
创建一个新的流,其中的元素按照自然顺序排序

sorted(Comparator comparator)
创建一个新的流,其中元素按照Comparator

流特征器

使用集合时,另一个常见的任务是确定整个集合的一些特性。流 API 提供了一种方法来计算给定流的大小。

count()
count()计算流中元素的数量

如果你喜欢这个,请访问我的编程博客获取更多提示和技巧

致谢

感谢Don LaVange提供的溪流图片

文章来源:https://dev.to/monknomo/java-8-stream-cheatsheet--oad
PREV
我的 PHP 开发工作设置
NEXT
打造出色简历的秘诀!