首页 > 科技 > Java Stream快速攻略

Java Stream快速攻略



流(Stream)是使用集合中对象的一种方式。

流(Stream)还能轻易实现简单的多线程。

基础流方法

如果我必须选择使用Stream的方法,我一定会用Map,Filter和Collect。

Filter

Filter接受一个Predicate,并且仅保留该Predicate为真的值。

Map

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

Sorted

Sorted使用一个比较器,并根据比较器中指定的顺序对流中的值进行排序。

Collect

Collect停止流,并将流中的值放入某种类型的集合中,例如列表。

toArray()

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



Finders 搜寻器

使用集合时,常见的任务是从流中获取元素。 通常在“Filter”和“Map”之后使用它们,以确保找到的元素与某些条件匹配并且属于首选类型。

findAny()

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

findFirst()

findFirst()返回一个Optional对象,它包含流中匹配的第一个元素(如果流为空,则为空)。 使用此方法时,它遵循流的顺序。

max(Comparator comparator)

max返回流中根据给定Comparator的最大元素

min(Comparator comparator)

min返回流中根据给定Comparator的最小元素



Matchers 匹配器

另一个常见任务是确定对象是否满足某些给定条件。 这些“匹配器”方法返回流中的某些,无对象或所有对象是否满足给定条件。

allMatch(Predicate pred)

如果流中的所有元素均与Predicate对象匹配,则返回true

anyMatch(Predicate pred)

如果流中的任何元素均与Predicate对象匹配,则返回true

noneMatch(Predicate pred)

如果流中的没有任何元素与Predicate对象匹配,则返回true



流修饰器

有时,流并不是完全“正确”的。 这些方法创建的新流与旧流的特征略有不同,无论是不同的长度,不同的起点还是保证仅包含唯一对象distinct()

创建一个新流,其中仅包含唯一的元素(基于.equals()来比较)。

limit(int maxSize)

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

skip(long n)

跳过流的前n个元素,并从其余元素中创建一个新流

sorted()

创建一个新的流,其中元素按照顺序排序

sorted(Comparator comparator)

创建一个新的流,在其中根据比较器对元素进行排序



流特征器

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

count()

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

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/294306.html