zoukankan      html  css  js  c++  java
  • Java8中一个极其强悍的新特性,很多人没用过(非常实用)

    Java8中有两个非常有名的改进,一个是Lambda表达式,一个是Stream。如果我们了解过函数式编程的话,都知道Stream真正把函数式编程的风格引入到了java中。这篇文章由简入繁逐步介绍Stream。

    一、Stream是什么

    从名字来看,Stream就是一个流,他的主要作用就是对集合数据进行查找过滤等操作。有点类似于SQL的数据库操作。一句话来解释就是一种高效且易用的数据处理方式。大数据领域也有一个Steam实时流计算框架,不过和这个可不一样。别搞混了。

    举个例子吧,比如说有一个集合Student数据,我们要删选出学生名字为“张三”的学生,或者是找出所有年龄大于18岁的所有学生。此时我们就可以直接使用Stream来筛选。当然了这只是给出了其中一个例子。Stream还有很多其他的功能。

    Stream和Collection的区别就是:Collection只是负责存储数据,不对数据做其他处理,主要是和内存打交道。但是Stream主要是负责计算数据的,主要是和CPU打交道。现在明白了吧。

    二、Stream语法讲解

    Stream执行流程很简单,主要有三个,首先创建一个Stream,然后使用Stream操作数据,最后终止Stream。有点类似于Stream的生命周期。下面我们根据其流程来一个一个讲解。

    1、前提准备

    首先我们创建一个Student类,以后我们每次都是操作这个类

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    然后下面我们再创建一个StudentData类,用于获取其数据

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    我们只需要把方法变成static类型的就可以了。

    2、创建一个Stream

    方式一:通过一个集合创建Stream

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    方式二:通过一个数组创建Stream

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    方式三:通过Stream.of

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    方式四:创建一个无限流

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    3、使用Stream操作数据

    操作1:筛选和切片

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    操作2:映射

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    操作3:排序

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    4、终止Stream

    操作1:匹配和查找

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    操作2:归约

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    操作3:收集

    Java8中一个极其强悍的新特性,很多人没用过(非常实用)

     

    stream基本的语法就是这样,你会发现Stream就像是一个工具一样,可以帮我们分析处理数据,极其的好用,但是目前还不知道其效率如何。根据网上一位大佬的内存时间分析,其实在数据量比较庞大的时候,Stream可以为我们节省大量的时间,数据量小的时候并不明显。

  • 相关阅读:
    一起谈.NET技术,C#特性Attribute的实际应用之:代码统计分析 狼人:
    uploadify+C#实例
    GoldenGate DDL双向复制
    [置顶] Cocos2dx 深入解析系列:以XML文件方式保存用户数据
    打包软件里面安装完打开网页
    [置顶] NYOJ38 布线问题
    IDC:PC 今年第一季度出货量继续下滑趋势,比起去年同期跌了13.9%
    设计模式之组合模式java实现
    Linux C下实现线程池
    [置顶] Unix 网络编程系列05
  • 原文地址:https://www.cnblogs.com/CQqfjy/p/12370716.html
Copyright © 2011-2022 走看看