Java Stream

Java Stream是Java8中的重要特性,用于处理集合数据。Stream不存储数据,而是按特定规则进行计算,提供高效的数据处理方式。它具有懒加载特性,操作分为中间操作和终端操作。中间操作包括筛选、映射、排序等,不立即执行,而是在终端操作如forEach、findAny时执行。Stream可通过集合、数组或静态方法创建,支持顺序流和并行流,可用于复杂的数据处理任务。
摘要由CSDN通过智能技术生成

Java Stream

1、什么是Stream

Stream 是 Java8 中处理集合的关键抽象概念。

Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。

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

简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。

2、Stream 的特性:

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

3、Stream操作分类

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

  • 中间操作,每次返回一个新的流,可以有多个。(筛选 filter 、映射 map 、排序 sorted 、去重组合 skip–limit
  • 终端操作,每个流只能进行一次终端操作,终端操作结束后流无法再次使用。终端操作会产生一个新的集合或值。(遍历 foreach 、匹配 find-match 、规约 reduce 、聚合 max-min-count 、收集 collect)

Stream操作的三个步骤

1、创建 Stream:一个数据源(如:集合、数组),获取一个流
 2、中间操作:一个中间操作链,对数据源的数据进行处理
 3、终止操作(终端操作):一个终止操作,执行中间操作链,并产生结果

4、Stream的使用

创建Stream

用集合创建流
List<String> list = new ArrayList<>();
// 创建一个顺序流
Stream<String> stream = list.stream(); 
// 创建一个并行流
Stream<String> parallelStream = list.parallelStream(); 

顺序流和并行流区分

stream 是顺序流,由主线程按顺序对流执行操作

parallelStream 是并行流,内部以多线程并行执行的方式对流进行操作,但前提是流中的数据处理没有顺序要求

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

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

Optional<Integer> findFirst = list.stream().parallel().filter(x->x>6).findFirst();
List<Integer> list = Arrays.asList(1,2,3,65,8);
System.out.println(findFirst.get());
数组创建流
Integer[] nums = new Integer[10];

Stream<Integer> stream = Arrays.stream(nums);
Stream中的静态方法创建流
Stream<Integer> stream = Stream.of(1,2,3,4,5,6);//1 2 3 4 5 6
//创建无限流 ①迭代
Stream<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值