• 视频流媒体平台内JAVA8的流式编程——常用流操作


    通俗地讲,流是支持类似数据库操作的“花哨的迭代器”。技术上讲,它是从某个数据源获得的支持聚合操作的元素序列。我们的视频流媒体服务器EasyNVR、EasyDSS等,都是属于流。

    流接口在java.util.stream.Stream定义了许多操作,这些可以分为以下两类:

    • filter,sorted和map一样的可以被连接起来形成一个管道的操作。
    • collect,findFirst和allMatch一样的终止管道并返回数据的操作。

    可以被连接起来的操作被称为中间操作,它们能被连接起来是因为都返回流。本文我们讲一下JAVA8的流式编程——常用流操作。

    JAVA8的常用流操作

    方法还是很多的,根据操作返回结果不同,我们大致进行一下分类,也就是返回stream的就是中间操作,其他的,返回具体对象的就是最终操作:

    中间操作:

    filter(): 对元素进行过滤
    sorted():对元素排序
    map():元素映射
    distinct():去除重复的元素
    最终操作:
    forEach():遍历每个元素。
    findFirst():找第一个符合要求的元素。
    reduce():把Stream 元素组合起来。例如,字符串拼接,数值的 sum,min,max ,average 都是特殊的 reduce。
    collect():返回一个新的集合。
    min():找到最小值。
    max():找到最大值。

    需要注意的是,一般中间操作之后,都是为了进行最终操作,得到我们需要的对象。

    示例:

    Java8以前我们常用的编程范式是命令式编程,使用起来比较复杂和繁琐,所以老是有很多新语言标榜自己的简单明了,强调Java的笨重,现在Java也加入了函数式编程,是代码看起来更加简洁与灵活,java流式编程主要操作对象是集合,为集合添加了查找、过滤、分组、排序等一系列的增强操作,使用起来更加方便。

  • 相关阅读:
    解析#pragma指令
    查看内核版本和发行版本

    unix 环境高级编成 apue.h ,apueerror.h的代码
    类string的构造函数、拷贝构造函数和析构函数 (转)
    归并排序
    C++ 中调用其他应用程序的方法
    [MySQL] MySQL的Grant命令
    static的作用
    白话经典算法系列之七 堆与堆排序 (转)
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/13091492.html
Copyright © 2020-2023  润新知