筛选与切片属于Stream流的中间操作,中间操作只在终止操作执行时进行执行加载,如果没有终止操作是中间操作的代码是不会生效的,也就是所谓的“延迟加载”也叫做“惰性求值”。
filter—接收 Lambda,从流中排除某些元素。
limit—截断流,使其元素不超过给定数量。
一旦满足了limit的需求后,就不再遍历其他元素了,就像产生了短路效果。
skip(n)— 跳过元素,返回一个扔掉了前n个元素的流。若流中元素不足n个,则返回一个空流。与limit(n)互补
distinct—筛选,通过流所生成元素的hashCode()和equals()去除重复元素
要对元素进行筛选时,一定要重写对象的hashCode和equals方法