Java 8新特新Stream (1)

 Stream概述

  Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利。

  Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。

 

  Stream可以由数组或集合创建,对流的操作分为两种

  1. 中间操作,每次返回一个新的流,可以有多个。
  2. 终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值

Stream有几个特性:

  1. stream不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果。
  2. stream不会改变数据源,通常情况下会产生一个新的集合或一个值。
  3. stream具有延迟执行特性,只有调用终端操作时,中间操作才会执行。

Stream的创建

Stream可以通过集合数组创建。

1、通过 java.util.Collection.stream() 方法用集合创建流

Stream
of()、iterate()、generate()
stream
parallelStream
stream
parallelStream

 

 

  如果流中的数据量足够大,并行流可以加快处速度。

  除了直接创建并行流,还可以通过parallel()把顺序流转换成并行流

 

3 Stream的使用

在使用stream之前,先理解一个概念:Optional

Optional类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。

用stream 的静态方法创建一个顺序流 得到的顺序流 通过parallel方法可以把顺序流转成并行流对象 filter过滤 流中 元素大于3的第一个元素的流对象

 

optional中的isPresent 方法如果Optional中存在则返回true 不存在返回flase

optional 中 get 方法 如果在这个Optional中包含这个值,返回值,否则抛出异常:NoSuchElementException

















posted @   无奈的小笙9  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示