Java 8 Stream(三、Stream中间操作:filter()、distinct()、skip()、limit()、map()、flatMap()、sorted()、peek())

本文详细介绍了Java 8 Stream的中间操作,包括无状态的filter、distinct、skip和limit,以及有状态的map、flatMap。此外,还讨论了排序操作sorted和消费操作peek,展示了如何在实际代码中应用这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上文我们对Stream操作和无限流做了介绍,没看过的同学请出门左转 Java 8 Stream(二、Stream操作和无限流)



本文我们主要介绍Stream中间操作(Intermediate operations)。

一、分类

根据对元素的处理方式,中间操作可分为无状态(Stateless)操作和有状态(Stateful)操作。
无状态: 元素的处理不受之前元素的影响,例如filter()、map()、flatMap()等。
有状态: 操作只有拿到所有元素之后才能继续下去,例如distinct()、skip()、limit()等。
具体分类详见 Java 8 Stream(二、Stream操作和无限流)一、(四)操作分类

二、介绍

(一)筛选与切片

1、filter()

Stream<T> filter(Predicate<? super T> predicate);

说明: 接受一个函数式接口Predicate<T>为入参,过滤流中的数据。
示例:

Stream.of("1", "2", "3").filter(x -> x.equals("2")).forEach(System.out::println);    // 2

2、distinct()

Stream<T> distinct();

说明: 通过流中元素的hashCode() 和 equals() 去重。
示例:

Stream.of("1", "3", "3").distinct().forEach(System.out::println
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值