天天看点

java Stream流之创建方式

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

等操作。使⽤Stream API 对集合数据进⾏操作,就类似于使⽤ SQL 执⾏的数据库查询。也可以使⽤ Stream API 来并⾏执⾏操作。简⽽

⾔之,Stream API 提供了⼀种⾼效且易于使⽤的处理数据的⽅式。

Stream的一些特点:

1 . 不是数据结构,不会保存数据。

2. 不会修改原来的数据源,它会将操作后的数据保存到另外⼀个对象中。(保留意见:毕竟peek⽅法可以修改流中元素)

3. 惰性求值,流在中间处理过程中,只是对操作进⾏了记录,并不会⽴即执⾏,需要等到执⾏终⽌操作的时候才会进⾏实际的计算。

一丶创建Stream流方式一:     通过集合

//创建一个集合
List<Employee> list = EmployeeData.getEmployees();
//得到一个顺序流
Stream<Employee> stream = list.stream();
//得到一个并行了流
Stream<Employee> stream2 = list.parallelStream();
           

二丶创建Stream流方式二:    通过数组

//先创建一个数组
int[] arr = new int[]{1, 2, 3, 4, 5, 6};
//使用数组Arrays工具类获取Stream流
IntStream stream = Arrays.stream(arr);
           

二丶创建Stream流方式三:    通过stream流的of( )方法

Stream<Integer> stream = Stream.of(1,2,3,4,5,6);
           

四丶创建Stream流方式四:    创建无限流

//无限流之迭代方式
//创建了10个元素从0到18
Stream<Integer> s =  Stream.iterate(0, t -> t + 2).limit(10);
        
//无限流之生成方式
//创建了10个随机数
Stream<Double> s2 =  Stream.generate(Math::random).limit(10);