JDK1.8新特性学习笔记-Stream

流Stream其实就是数据渠道,用于操作数据源(集合,数组等)所生成的元素序列,集合是数据,流就是计算,把数据经过一系列流水线式的中间操作以后产生一个新流 。1)stream不会自己存储元素 ,2)stream不会改变源对象 3)stream操作是延迟的执行的,这意味着他们会等到需要结果时才执行(后面代码演示)。

Stream操作的三个步骤:

1.创建Stream:创建数据源(集合,数组等),获取一个流

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

3.终止操作:一个终止操作,执行中间操作链,产生结果

	    //1. Collection 提供了两个方法  stream() 与 parallelStream()
		List<String> list = new ArrayList<>();
		Stream<String> stream = list.stream(); //获取一个顺序流
		Stream<String> parallelStream = list.parallelStream(); //获取一个并行流
		
		//2. 通过 Arrays 中的 stream() 获取一个数组流,参数可以是任意类型的数组
		Integer[] nums = new Integer[10];
		Stream<Integer> stream1 = Arrays.stream(nums);
		
		//3. 通过 Stream 类中静态方法 of()
		Stream<Integer> stream2 = Stream.of(1,2,3);
		
		//4. 创建无限流
		//迭代 一元运算+2无限进行,可以用limit限制次数
		Stream<Integer> stream3 = Stream.iterate(0, (x) -> x + 2);
		stream3.forEach(System.out::println);
		
		//生成
		Stream<Double> stream4 = Stream.generate(Math::random).limit(2);
		stream4.forEach(System.out::println);

猜你喜欢

转载自blog.csdn.net/weixin_42394952/article/details/81565715