• Stream流思想和常用方法


    一、IO流用于读写;Stream流用于处理数组和集合数据;

    1、传统集合遍历:

     2、使用Stream流的方式过滤:

    其中,链式编程(返回值就是对象自己)中,filter使用的是Predicate函数式接口,它的唯一抽象方法是Test()布尔判断:

     

    遍历方法forEach()使用的是数据消费Comsumer函数式接口唯一抽象方法是accept()方法,方法体中(lambda表达式)就是对入参数据经行处理使用就行::

     

     2、Stream流的思想: 是个生产线,只处理获取的数据源数据,不存储数据:

     其中,map步骤,映射可以改变集合元素的数据类型;

    二、获取集合的两种方法

    1、Collection集合的List和Set单列集合: 

     其中,String的底层就是一个字节数组;

    2、Map双列集合集合:

     3、Stream类的静态方法of()获取:

     三、Stream流的常用方法:

     其中,前面延迟方法是处理集合数据,最后终结方法是真正的改变数据元素;

     1、终结方法for each

     2、延迟方法 filter

     

     3、Stream是管道流,只能被消费(使用)一次;

     异常:

     4、延迟方法map方法,使用的是函数式接口function接口,的apply唯一抽象方法:

    function接口的唯一抽象方法apply:

     

     5、终结方法count()

     6、延迟方法limit:

     

     7、延迟方法skip:

     

     8、Stream类的静态方法concat() , 合并流

     9、集合元素处理实例

    9.1传统集合方式处理:

    从两个集合中选几个String类型的name 满足条件的元素到新集合中并创建person对象:

     其中,addAll是把一个集合的元素都添加到当前集合对象中;

    9.2Stream流的方式

     其中,Stream类静态方法concat(stream1, stream2),map方法映射,将集合中元素数据类型转换,String应用类型转换成Person引用类型,使用forEach() 遍历处理终结;

  • 相关阅读:
    LeetCode 217. 存在重复元素
    LeetCode 48. 旋转图像
    LeetCode 35. 搜索插入位置
    LeetCode 27. 移除元素
    LeetCode 145. 二叉树的后序遍历 (用栈实现后序遍历二叉树的非递归算法)
    LeetCode 328. 奇偶链表
    LeetCode 160. 相交链表 (找出两个链表的公共结点)
    LeetCode 26. 删除排序数组中的重复项
    LeetCode 836. 矩形重叠
    数据库
  • 原文地址:https://www.cnblogs.com/wmqiang/p/11521353.html
Copyright © 2020-2023  润新知