博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA8之Stream
阅读量:3944 次
发布时间:2019-05-24

本文共 2075 字,大约阅读时间需要 6 分钟。

一 Stream是什么

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

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

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

二、Stream语法讲解

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

1、前提准备

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

public class Student {
private Integer id;
private String name;
private Integer age;
private Double score;

public Student() {}

public Student(Integer id, String name, Integer age, Double score) {

super();
this.id = id;
this.name = name;
this.age = age;
this.score = score;
}

public Integer getId() {

return id;
}

public void setId(Integer id) {

this.id = id;
}

public String getName() {

return name;
}

public void setName(String name) {

this.name = name;
}

public Integer getAge() {

return age;
}

public void setAge(Integer age) {

this.age = age;
}

public Double getScore() {

return score;
}

public void setScore(Double score) {

this.score = score;
}

@Override

public String toString() {
return “Student [id=” + id + “, name=” + name + “, age=” + age + “, score=” + score + “]”;
}

}

1.2 用于获取数据
public class StudentData {
public static List getStudent(){
ArrayList list = new ArrayList<>();
list.add(new Student(1,“刘备”,18,90.4));
list.add(new Student(2,“张飞”,19,80.4));
list.add(new Student(3,“关羽”,20,70.4));
list.add(new Student(4,“马超”,21,60.4));
return list;
}
}
2 创建一个Stream
方式一:通过一个集合创建stream
List student = StudentData.getStudent();
//第一种:返回一个顺序流
Stream stream = student.stream();
System.out.println(stream);
//第二种
Stream stream2 = student.parallelStream();
System.out.println(stream2);
在这里插入图片描述
方式二:通过一个数组创建Stream
在这里插入图片描述
方式三:通过Stream.of
在这里插入图片描述
方式四:创建一个无限流
在这里插入图片描述
3、使用Stream操作数据

操作1:筛选和切片

在这里插入图片描述
操作2:映射

在这里插入图片描述

操作3:排序
在这里插入图片描述
4、终止Stream

操作1:匹配和查找

在这里插入图片描述
操作2:归约
在这里插入图片描述
操作3:收集
在这里插入图片描述
stream基本的语法就是这样,你会发现Stream就像是一个工具一样,可以帮我们分析处理数据,极其的好用,但是目前还不知道其效率如何。根据网上一位大佬的内存时间分析,其实在数据量比较庞大的时候,Stream可以为我们节省大量的时间,数据量小的时候并不明显。
总结:
Stream的作用:
1.筛选和切片
2 映射
3 排序
4 中止Stream

转载地址:http://zalwi.baihongyu.com/

你可能感兴趣的文章
GSM链路层信令协议
查看>>
技术道德
查看>>
“需求为王”才是根本
查看>>
高效率的危害
查看>>
寻找边缘性创新
查看>>
让创意瞄准市场
查看>>
高效经理人应具有的八个重要习惯
查看>>
优秀的领导者能读懂人才
查看>>
大智若愚也是领导力
查看>>
android如何编译MTK的模拟器
查看>>
android如何添加AP中要使用的第三方JAR文件
查看>>
利用sudo命令为Ubuntu分配管理权限
查看>>
Ubuntu下几个重要apt-get命令用法与加速UBUNTU
查看>>
Ubuntu中网页各种插件安装命令
查看>>
使用tar命令备份Ubuntu系统
查看>>
ubuntu flash 文字乱码解决方案
查看>>
在ubuntu中运行exe文件
查看>>
ubuntu安装命令
查看>>
Android学习笔记(四十):Preference的使用
查看>>
Android学习笔记(四二):SQLite、ListView、ContextMenu
查看>>