方法名 | 返回值 | 重点 |
---|---|---|
count | long | 计算条数 |
forEach | void | 增强遍历 |
reduce | Option | reduce((result,item)->{ result=result+item;return result; });或者 reduce(Intger::sum); 注意:如果流中只有一条数据的话,那么不会执行reduce里面的方法,直接返回这条数据 |
match | boolean | anyMatch 元素是否有任意一个满足条件; allMatch 元素是否都满足条件; noneMatch 元素是否都不满足条件。参数和filter一样,都是一个断言类型的函数式接口 |
find | Option | findFirst返回第一个;findAny随机返回一个 |
min | Option | min((o1,o2)->o1-o2)或者min(Integer::compareTo) |
max | Option | max((o1,o2)->o1-o2)或者max(Integer::compareTo) |
filter | Stream | 过滤不合适的 |
limit | Stream | 截取前几个 |
skip | Stream | 跳过前几个 |
map | Stream | 返回一个新的元素 |
concat | Stream | Stream的静态方法,将两个Stream连接到一起 |
sorted | Stream | sorted((o1,o2)->o1-o2)或者sorted((o1,o2)->o2-o1)或者sorted(Integer::compareTo) |
distinct | Stream | 此方法没有参数。只能对java的基础数据类型进行排序。如果是自定义类的话,需要这个类自己重写hash和equals方 |
flatMap | Stream | List<List<String>> 将三维的list,合并成二维的。List<String> |
重点:
非终结方法:返回值类型仍然是 Stream 类型的方法,支持链式调用。(除了终结方法外,其余方法均为非终结方法。)终结方法就是值不再是Stream的
Stream注意事项(重要)
- Stream只能操作一次
- Stream方法返回的是新的流
- Stream不调用终结方法,中间的操作不会执行
网友评论