JDK8——streamAPI学习笔记

一、 流的概念

1、什么是流(stream)

       在Java 8 中,stream是新增的一大亮点,Stream 是对集合对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作。它像是一种是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列,流本身不是一种数据结构,不能够存储数据,它只关注于数据内部的计算,在一定程度上类似于迭代器,单向运行,只能使用一次,但是与之不同的是Stream能够并行化操作。简单来说:集合专注于数据,而流专注于计算

2、Stream的操作步骤

(1)、创建Stream

一个数据源(如:集合、数组),获取一个流

(2)、中间操作

一个中间操作链,对数据源的数据进行处理

(3)、终止操作

一个终止操作,执行中间操作链,并产生结果。

二、创建Stream

创建Stream的方式有多种

1、collection接口提供

 default Stream stream() : 返回一个顺序流 

 default Stream parallelStream() : 返回一个并行流

List list = new ArrayList<>();
Stream stream = list.stream(); //获取一个顺序流
Stream parallelStream = list.parallelStream(); //获取一个并行流

2、通过Arrays中的静态方法stream()获取数组流

static Stream stream(T[] array)

Integer[] nums = new Integer[10];
Stream stream1 = Arrays.stream(nums);

3、可以使用静态方法 Stream.of(), 通过显示值 创建一个流。它可以接收任意数量的参数

public static Stream of(T... values) 

Stream stream2 = Stream.of(1,2,3,4,5,6);

4、可以使用静态方法 Stream.iterate() 和 Stream.generate(), 创建无限流

迭代
public static Stream iterate(final T seed, final UnaryOperator f) 
生成
public static Stream generate(Supplier s) 

//迭代,生成偶数集合无限流
Stream

你可能感兴趣的:(jdk8新特性)