详细讲一讲stream的终端操作
时间: 2023-11-07 12:33:09 浏览: 56
Stream是Java 8中的一种新的API,它提供了一种更加简单、更加优雅的方式来处理集合、数组、I/O等数据源。Stream的终端操作是Stream API中的最后一步,也是最重要的一步,它可以将Stream转化为具体的结果。
Stream的终端操作分为两类:一类是返回非Stream的结果;一类是返回Stream的结果。
1. 返回非Stream的结果:
(1) forEach:对Stream中的每个元素执行指定的操作,没有返回值。
(2) toArray:将Stream中的元素转化为数组。
(3) reduce:将Stream中的元素进行聚合操作,返回一个Optional类型的结果。
(4) min和max:返回Stream中元素的最小值和最大值。
(5) count:返回Stream中元素的个数。
(6) anyMatch和allMatch:判断Stream中是否有元素匹配指定的条件。
(7) findFirst和findAny:返回Stream中的第一个元素或任意一个元素。
2. 返回Stream的结果:
(1) filter:根据指定的条件过滤Stream中的元素,返回一个新的Stream。
(2) map:将Stream中的元素转化为指定类型的元素,返回一个新的Stream。
(3) flatMap:将Stream中的元素转化为一个Stream,返回一个新的Stream。
(4) distinct:去除Stream中的重复元素,返回一个新的Stream。
(5) sorted:对Stream中的元素进行排序,返回一个新的Stream。
(6) limit和skip:对Stream中的元素进行截取,返回一个新的Stream。
(7) collect:将Stream中的元素进行收集操作,返回一个非Stream的结果。
以上是Stream的一些常见的终端操作。在实际使用中,我们可以根据具体的场景选择合适的操作,以达到最佳的效果。