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

createh52个月前 (04-07)技术教程23

转自: Java的架构师技术栈

原文:http://suo.im/6p27hA(点击阅读全文前往)

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可以为我们节省大量的时间,数据量小的时候并不明显。

相关文章

学习Java语言有什么好处?

许多人选择进入IT行业,却不知道自己适合学习哪种编程语言,以及哪种语言具有良好的发展前景,编程语言有很多种类,因此,选择编程语言时,得认真考虑,在选择编程语言的过程中,很多人会选择Java语言作为入门...

Java:理解Java软件开发的利与弊

  Java解决方案在所有类型的组织中都很流行,因为它是全球使用最广泛的编程语言。Java是一种开源编程语言,开发人员可以编写一次,在任何地方使用,因为它具有跨平台的开发能力。  Java的主要用途包...

揭秘Java五大特性,你不容错过!

前言Java是一种面向对象的编程语言,拥有五大特性:封装、继承、多态、抽象、接口。这五大特性让Java成为一个功能强大、灵活性高、易于扩展的编程语言,被广泛应用于Web应用、移动开发、游戏开发、大数据...

数据库索引优化在Java应用中的作用

数据库索引优化在Java应用中的作用在现代软件开发中,数据库索引优化是一项至关重要的技术。无论你是刚刚开始接触Java编程的新手,还是已经拥有多年经验的资深开发者,理解并掌握数据库索引优化的基本概念和...

容器化技术对Java应用的影响:从虚拟机到轻量级容器

容器化技术对Java应用的影响:从虚拟机到轻量级容器在过去的几十年里,Java作为一门编程语言,一直以其平台无关性和强大的生态系统独树一帜。然而,随着云计算和微服务架构的兴起,一种新的趋势正在改变Ja...