Java8 Stream流的基本使用

流是什么

 

官方解释:支持顺序和并行聚合操作的元素序列

 

通俗解释:Stream 是对集合(Collection)对象功能的增强。它的操作模式类似于流水线,会把若干元素进行一步步操作,比如筛选, 排序,聚合等,最后生成你想要的结果。

 

使用流可以极大提高代码的编写效率,同时增加代码的可读性。

 

流的基本操作

 

1、获取流。一般Collection集合调用stream()方法,即可生成一个流,其他各类获取流方法暂不介绍

2、中间操作,如筛选, 排序,聚合等。每次中间操作都会生成一个新的流,然后继续下一个中间操作,直到进行终端操作。

3、终端操作,获得最终预期的结果,如:某个符合条件的元素、一个布尔值、一个新的集合、一个统计值

 

详细解释:

下图是《Java8实战》中的一个截图,场景是 菜单中热量超过300的菜中选三道

 

其中涉及到三个中间操作

1、filter:筛选菜单中热量大于300的菜 --> 生成一个经过筛选的新的流

2、map:得到菜名 --> 生成一个新的流,流的元素是菜的名称

3、limit:只取流的前三个元素 --> 生成一个长度为3的菜名流

 

最后进行了终端操作collect(toList()),将菜名流转成了一个List

 

image.png

常见案例

 

中间操作

 

distinct

distinct:去重

另外有终端操作count:计数

 

最终效果:计算depotIdList中是否有重复的元素

if (depotIdList.stream().distinct().count() != depotIdList.size()) {
  

 

map(转化)

 

1、将Stream<BankAccountDTO>转为Stream<String>,变成了助记码(remindCode)流

2、将Stream<ClientBillDTO>转为Stream<Exte

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值