流式编程提高编程效率

121 阅读1分钟

我正在参加「掘金·启航计划」

在编程时面对批量数据要对其进行转换、过滤、匹配等操作时用stream可以更简单方便的进行处理,也看上去更优雅。

1 流的简单描述 ( 流是从支持数据处理操作的源生成的元素序列)

1 元素序列:就像集合一样,流也提供了一个接口,可以访问特定元素类型的一组有序值
2 源:流会使用一个提供数据的源,如集合、数组或输入/输出资源
3 数据处理操作:流的数据处理功能支持类似于数据库的操作,以及函数式编程语言中的常用操作,如filter、map、reduce、findmatchsort4.流水线:很多流操作本身会返回一个流,这样多个操作就可以链接起来,形成一个大的流水线
5.内部迭代:与使用迭代器显式迭代的集合不同,流的迭代操作是在背后进行的

2 流的常用操作

(1) 中间操作

    filter: 对流进行过滤操作
    map: 对流中的元素做加工处理
    limit: 返回指定数量的流
    distinct: 去重处理
    flatMap: 进行扁平化处理,将多个stream合成一个stream
    sorted: 对流中的数据进行排序
    peek: 对流中的元素进行操作
    skip: 将前几个元素跳过(取出)再返回一个流

注意事项

生成的流只能遍历一遍
对流进行处理不会影响的原有的数据

最近常用stream 进行开发,故总结下,有什么遗漏或有误的地方希望jym们积极指出,轻喷!