网站首页 > java教程 正文
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类,以后我们每次都是操作这个类
然后下面我们再创建一个StudentData类,用于获取其数据
我们只需要把方法变成static类型的就可以了。
2、创建一个Stream
方式一:通过一个集合创建Stream
方式二:通过一个数组创建Stream
方式三:通过Stream.of
方式四:创建一个无限流
3、使用Stream操作数据
操作1:筛选和切片
操作2:映射
操作3:排序
4、终止Stream
操作1:匹配和查找
操作2:归约
操作3:收集
stream基本的语法就是这样,你会发现Stream就像是一个工具一样,可以帮我们分析处理数据,极其的好用,但是目前还不知道其效率如何。根据网上一位大佬的内存时间分析,其实在数据量比较庞大的时候,Stream可以为我们节省大量的时间,数据量小的时候并不明显。
猜你喜欢
- 2024-09-27 Java 8新特性探究(一)通往lambda之路_语法篇
- 2024-09-27 java8新特性function和lambda深度解析
- 2024-09-27 Java 8新特性:集合迭代、并行处理及函数式接口
- 2024-09-27 Java8的新特性(四)(java8新特性分组)
- 2024-09-27 Java 8之后的那些新特性(一):局部变量var
- 2024-09-27 Java 17 新特性已经确定,进入了发布倒计时
- 2024-09-27 跟上Java8–你忽略了的新特性(java8 64位)
- 2024-09-27 Java 8 新特性专栏,免费阅读(java8新特性optional用法)
- 2024-09-27 Java 8新特性详解与实例演示(java+8新特性详解与实例演示过程)
- 2024-09-27 Java 8 的这些特性,用起来真的很爽
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)