8. 尚硅谷_Java8新特性_Stream_筛选与切片
Stream 继续进行中间操作
筛选和切片
映射
排序
stream 中间操作的文档版
然后开始第一波 : 筛选和切片
如果没有终止操作,那么中间操作是不会执行的
只有执行了终止操作,中间操作才会执行
这种情况的介绍
代码上的样子
这种情况属于内部迭代
那么演示一下外部迭代
演示一下limit操作
此时跟着一下filter里面
只要迭代两次找到需要的数据,就不会再执行下去。
可以类比断路与和断路或
使用skip,跳过前两个
使用distinct ,去重
三个重复的田七
添加distinct前的结果:
添加后的结果
发现结果没有改变,这是因为distinct是通过hashCode和equal来判断是否重复的。
默认情况下的hashCode 和equal :
- 默认的equals 判断的是两个对象的引用指向的是不是同一个对象;
- 而hashcode也是根据对象地址生成一个整数数值;
所以需要重写这两个方法
此时的结果 :就去重了