/**
* forEach() 方法用来遍历流中的数据,是一个终结方法。该方法接收一个 Consumer 接口函数,会将每一个流元素交给该函数进行处理。
* @param action
*/
void forEach(Consumer super T> action);
/**
* count() 方法,用来统计集合中的元素个数,是一个终结方法。该方法返回一个 long 值代表元素个数
* @return
*/
long count();
/**
* filter() 方法,用于过滤数据,返回符合过滤条件的数据,是一个非终结方法。
* 我们可以通过 filter() 方法将一个流转换成另一个子集流。
* 该接口接收一个 Predicate 函数式接口参数(可以是一个 Lambda 或 方法引用) 作为筛选条件
* @param predicate
* @return
*/
Stream filter(Predicate super T> predicate);
/**
* limit() 方法,用来对 Stream 流中的数据进行截取,只取用前 n 个,是一个非终结方法。
* 参数是一个 long 型,如果集合当前长度大于参数则进行截取,否则不进行操作。
* @param maxSize
* @return
*/
Stream limit(long maxSize);
/**
* 如果希望跳过前几个元素,去取后面的元素,则可以使用 skip()方法,获取一个截取之后的新流
* @param n
* @return
*/
Stream skip(long n);
/**
* map() 方法,可以将流中的元素映射到另一个流中。
* 即:可以将一种类型的流转换为另一种类型的流
* 可以将当前流中的T类型数据转换为另一种R类型的流
* @param mapper
* @param
* @return
*/
Stream map(Function super T, ? extends R> mapper);
/**
* flatMap 的使用,同 map 类似。
* map只是一维 1对1 的映射,而flatMap可以将一个2维的集合映射成一个一维,相当于它映射的深度比map深了一层。
* @param mapper
* @param
* @return
*/
Stream flatMap(Function super T, ? extends Stream extends R>> mapper);
/**
* 根据元素的自然规律排序
* @return
*/
Stream sorted();
/**
* 根据比较器指定的规则排序
* @param comparator
* @return
*/
Stream sorted(Comparator super T> comparator);
/**
* distinct() 方法,可以用来去除重复数据
* @return
*/
Stream distinct();
/**
* allMatch 全匹配(匹配所有,所有元素都需要满足条件-->返回true)
* @param predicate
* @return
*/
boolean allMatch(Predicate super T> predicate);
/**
* anyMatch 匹配某个元素(只要有一个元素满足条件即可-->返回true)
* @param predicate
* @return
*/
boolean anyMatch(Predicate super T> predicate);
/**
* noneMatch 匹配所有元素(所有元素都不满足指定条件-->返回true)
* @param predicate
* @return
*/
boolean noneMatch(Predicate super T> predicate);
/**
* findFirst() 、findAny() 方法,都是用来查找 Stream 流中的第一个元素。
* 返回值为 Optional,意味着有可能找到也有可能找不到的情况
* @return
*/
Optional findFirst();
Optional findAny();
/**
* max() 和 min() 方法,用来获取 Stream 流中的最大值和最小值。
* 该接口需要一个 Comparator 函数式接口参数,根据指定排序规则来获取最大值,最小值。
*为了保证数据的准确性,此处排序规则需要是升序排序。
* 因为:max() 方法获取的是排序后的最后一个值,min() 方法获取的是排序后的第一个值。
* @param comparator
* @return
*/
Optional max(Comparator super T> comparator);
Optional min(Comparator super T> comparator);