8. 尚硅谷_Java8新特性_Stream_筛选与切片

Stream 继续进行中间操作

筛选和切片
在这里插入图片描述

映射

在这里插入图片描述

排序

在这里插入图片描述

stream 中间操作的文档版

在这里插入图片描述

然后开始第一波 : 筛选和切片

在这里插入图片描述
在这里插入图片描述

如果没有终止操作,那么中间操作是不会执行的
在这里插入图片描述

只有执行了终止操作,中间操作才会执行

在这里插入图片描述

这种情况的介绍

在这里插入图片描述

代码上的样子
在这里插入图片描述

这种情况属于内部迭代

在这里插入图片描述
那么演示一下外部迭代

在这里插入图片描述
演示一下limit操作

在这里插入图片描述

此时跟着一下filter里面

在这里插入图片描述

只要迭代两次找到需要的数据,就不会再执行下去。
可以类比断路与和断路或

在这里插入图片描述

使用skip,跳过前两个

在这里插入图片描述

使用distinct ,去重

三个重复的田七

在这里插入图片描述
添加distinct前的结果:
在这里插入图片描述

添加后的结果

在这里插入图片描述
发现结果没有改变,这是因为distinct是通过hashCode和equal来判断是否重复的。

默认情况下的hashCode 和equal :

  • 默认的equals 判断的是两个对象的引用指向的是不是同一个对象;
  • 而hashcode也是根据对象地址生成一个整数数值;

所以需要重写这两个方法
在这里插入图片描述

此时的结果 :就去重了

在这里插入图片描述