Stream
含义
数据的渠道,用来操作数据源产生元素的序列。集合和数组是对数据进行存储,但Stream是对数据进行一系列处理操作。
特点
- 惰性加载,只有在获取的时候才会把一系列的中间操作做完并且返回
- 流是不能重复使用的,做完一次操作返回的是新的流而不是原来的。
- stream本身不存储数据
- Stream不会写该数据源的数据,在每次进行操作后获得新的流
流的创建
- Collection 里面有获取Stream流的方法
- Arrays.Stream获取操作数组的流
- stream.of
操作过程
List<Staff> list = new ArrayList<>();
list.add(new Staff("张三",28,5000.3));
list.add(new Staff("李四",38,5500.3));
list.add(new Staff("王五",48,5030.3));
list.add(new Staff("赵六",58,5210.3));
list.add(new Staff("田七",68,4000.3));
list.add(new Staff("老八",28,3000.3));
System.out.println(list);
//获取流
Stream<Staff> stream = list.stream();
//中间操作
stream = stream.filter(staff -> staff.getAge()>30)
.distinct()
.limit(3)
.skip(1);
stream.forEach(System.out::println);