流(Stream):
是数据渠道,用于操作数据源所生产的元素序列
“集合江的是数据,流讲的是计算”
注意:
1:Stream 自己不会储存元素。
2:Stream 不会改变源对象,相反他们会返回一个持有结果的新Stream。
3:Stream 操作是延迟执行的,这意味着他们会等到需要结果的时候才去执行。
Stream的操作三个步骤
. 创建Stream
一个数据源(如:集合,数组),获取一个流
扫描二维码关注公众号,回复:
1873815 查看本文章
.中间操作
一个中间操作链,对数据源的数据进行处理
.中止操作(终端操作)
一个中止操作,执行中间操作链,并产生结果
package com.example.jedis.test; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Stream; /** * ***GOOD LUCK**** * * @Author : Wukn * @Date : 2018/6/ */ /** * StreamApi * * */ @SpringBootTest @RunWith(SpringRunner.class) public class StreamApiDemo { /** * Stream三个操作步骤 * 1,创建Stream * 2,中间操作 * 3,中止操作 */ /** * 创建Stream流的方式 */ @Test public void test1() { /**可以通过Collection 集合系列提供的 * stream() 串行流 * 或 * parallelStream() 并行流 */ List<String> list = new ArrayList <>( ); Stream<String> stream = list.stream(); /** *通过Arrays中的静态方法stream()获取数组流 */ Use[] uses = new Use[10]; Stream<Use> stream1 = Arrays.stream( uses ); /** * 通过Stream类中的静态方法 of() */ Stream<String> stream2 = Stream.of( "aa" ); /** * 创建无限流 */ //迭代 Stream<Integer> stream3 = Stream.iterate( 0,(x) -> x+2 ); stream3.limit( 10 ).forEach( (x) -> System.out.println(x)); //生成 Stream.generate( () -> Math.random() ) //数据源,可以产生任意的随机数 .limit( 5 ) //中间操作,只需要五个随机数 .forEach( System.out::println ); //中止操作,遍历打印这五个 } }