zoukankan      html  css  js  c++  java
  • 2020.12.21---Stream的运用

    Stream流
    JDK1.8才有,依赖于lambda表达式。----->目的是为了解决查询的时候一次又一次的遍历苦恼

    步骤
    1.将集合A中的数据结果条件一,过滤到子集合B中
    2.将集合B里面的数据经过条件二筛选为子集合C

    Stream流常用API方法
    1.针对对象

    • Collection集合的子集合list或这Set
    • 数组
      2.使用步骤
      1.获得Stream流对象---->集合对象.stream();
      2.获得符合条件吗的流对象
      3.查看流里面的数据

    因为返回的都是Stream流对象所以可以进行链式调用

    Stream流思想概述
    就是按照我们的设计思想一步一步的去完后,
    每次完成之后返回一个流对象,继续调用后面的API方法
    是由一个流转换为另一个流

    对应方法:filter(过滤),maop(映射),skip(跳过),count(计数)

    使用流的三个步骤
    1.获取数据源(单列集合或数组)
    2.进行数据转换(转换为Sream流对象)----->数组或集合对象.stream()----或者-+----Stream.of(数组或集合对象)
    3.执行需要的操作,获得想要的结果
    注意
    没转换一次获得一个新的Stream,就可以使用2链式调用

    Stream和Collection的区别
    1.Stream中间都会转换为新的Stream对象,可以进行多个操作一起调用,有序的从前往后的运行
    2.内部迭代:以前的增强for循环或者iterator都是外部迭代,
    3.Stream是一个集合的函数模型,并不会存储数据,只需要按需求进行计算就可以

    Stream流是来自元素数据源的元素队列
    1.元素是特定类型的对象,线程一个队列,并不会存储数据,只是按照需求进行改进
    2.数据源--->是流的数据来源,可以是单列集合也可以是数组

    获取流对象:借助单列集合或者数组
    1.集合对象或者数组对象.stream()
    2.Stream.of(集合或者数组对象)

    Stream流对象的常用方法
    1.延迟方法:返回的事stream流对象
    2.终结方法: 返回的不Stream对象比如 count forEach

    forEach方法:forEach()
    括号内部是Consumer函数接口,主要是accept抽象方法主要是用来处理数据
    代码演示

    filter过滤方法:filter()
    通过【filter方法】将原有的流对象转换为符合条件的新的流对象
    小括号内部是Predicate函数式接口,主要是用内部的test(T t)方法。目的是为了保留满足条件的数据。
    代码演示

    Stream流运行图解

    Map映射:map()
    1.目的
    把一个流对选哪个里面的·数据转换为另一种形式保存在另一个流对象中
    函数式接口
    主要是运用了Function函数式接口里面的apply方法,把原流数据转换为另一种数据保存在另一个流对象里面
    代码演示

    统计流中元素个数:count()
    1.目的
    查看流里面有多少元素,返回值为long类型
    代码演示

    取用前几个流数据:Llimit(数字)
    Stream limit(long maxSize);---->如果超过了流数据个数最大值,不会报错只是不回家乡操作
    代码演示

    跳过前几个流对象
    Stream skip(long n);--->跳过前几个继续执行,返回后面几个流,如果超过数据个数最大值就返回哦空流
    代码演示

    concat,组合流
    1.目的
    把连个流合并在一起,如果数据类型不一致,前面就用通配符---->? extends Object
    2.代码演示

  • 相关阅读:
    Leetcode 433.最小基因变化
    穿越牛熊的“巴菲特”投资系统(发布于05-27 11:02)
    巴菲特的“安全边际”(发布于2019-6-16 10:39)
    安全边际:成功的基石(附选股)(选股策略系列五完结篇)(发布于06-14 11:11)
    分红与成长性:投资回报的体现(选股策略系列四)(发布于06-13 13:35)
    合理的资本结构:企业的生命线(选股策略系列2)(发布于06-11 12:44)
    稳定的每股利润:价值的基础(选股策略系列三)(发布于06-12 09:57)
    股票与债券的对比投资(发布于06-09 10:13)
    二类股值得投资吗?(选股策略系列一)(发布于06-10 15:51)
    透视伯克希尔投资组合---看巴菲特与格雷厄姆(发布于06-07 09:43)
  • 原文地址:https://www.cnblogs.com/tushao/p/14176657.html
Copyright © 2011-2022 走看看