Stream流基础知识

Stream流:

在java 8中,得益于lambda所带来的函数式编程,引入了一个全新的stream概念,用于解决已有集合类库既有的弊端

stream流的概念:stream流其实类似于工厂的“生产流水线”

stream流的特点:

1.stream流是单向的,不能重复使用
2.stream流是有延迟性的,每一个操作延迟方法之后会得到一个新的流,除了终结的方法
3.stream流也是不能存储数据的
4.stream流必须一定得搭建好模型,才能执行(也就是说一定要有终结的方法,才会执行)
5.stream流不会更改数据源

stream流使用: 获取流->调用延迟方法->调用终结方法

获取流:

-所有的collection集合都可以通过stream默认方法来获取流
-stream接口的静态方法of可以获取数组对应的流

常用方法:
终结方法:返回值类型不再是Stream接口自身类型的方法,因此不再支持类似StringBuilder那样的链式调用。终结方法包括count和forEach方法。
延迟方法:返回值类型仍然是Stream接口自身类型的方法,因此支持链式调用。(除了终结方法外,其余方法均为延迟方法。)

终结方法:

long  count();统计个数
void  forEach(consumer<? super T>action);该方法并不保证元素的逐一消费动作在流中是被有序执行的。---并发流中无法保证消费动作被有序执行---普通流可以保证有序执行

在这里插入图片描述

延迟方法:

过滤   filter:
stream<T> filter(predicate<? super T> predicate); 通过filter方法将一个流转换成另一个子集流

在这里插入图片描述

取用前几个  limit:
stream<T> limit(long maxsize);limit方法可以对流进行截取,只取用前n个

在这里插入图片描述

跳过前几个  skip:
Stream<T> skip(long  n);如果希望跳过前几个元素,可以使用skip方法获取一个截取之后的新流

在这里插入图片描述

映射  map:
<R>  stream<R> map(Function<?  super  T,?  extends  R> mapper);如果需要将流中的元素映射到另一个流中,可以使用map方法---就是将流中元素转换为另一种类型

在这里插入图片描述

组合  concat:
合并流!
如果有两个流,希望合并成为一个流,那么可以使用Stream接口的静态方法concat:
static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b)
备注:这是一个静态方法,与java.lang.String当中的concat方法是不同的。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Stream是一种式编程(链式编程)的概念,Stream类中提供了一些操作集合或数组的方法,使得对数据的处理更加方便。Stream的使用步骤可以分为三步:获取、进行一些中间操作、进行终结方法。首先需要获取,可以通过单列集合、双列集合、数组等方式进行获取。然后可以进行一些中间操作,这些操作可以对中的元素进行筛选、映射、排序等操作,并且每次操作后的结果仍然是一个。最后进行终结方法,终结方法是对的最后一次操作,它会产生一个最终的结果,不能再使用其他方法了。Stream的概念是Java入门学习中的基础知识,它可以极大地简化对集合或数组的处理过程,提高代码的可读性和简洁性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Stream](https://blog.csdn.net/m0_47649585/article/details/118529000)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [举例讲解Java中的Stream概念](https://download.csdn.net/download/weixin_38576392/12803184)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值