动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

一课点透Stream流式操作

04-22 16:54 766浏览
举报 T字号
  • 大字
  • 中字
  • 小字

流是Java8引入的全新概念,它用来处理集合中的数据,暂且可以把它理解为一种高级集合。

Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。

众所周知,集合操作非常麻烦,若要对集合进行筛选、投影,需要写大量的代码,而流是以声明的形式操作集合,它就像SQL语句,我们只需告诉流需要对集合进行什么操作,它就会自动进行操作,并将执行结果交给你,无需我们自己手写代码。

因此,流的集合操作对我们来说是透明的,我们只需向流下达命令,它就会自动把我们想要的结果给我们。由于操作过程完全由Java处理,因此它可以根据当前硬件环境选择最优的方法处理,我们也无需编写复杂又容易出错的多线程代码了。

Java 8是一个跨越式的版本,于2014年3月18日正式发布,距今几年过去了,很多企业的项目中都使用了Java8进行开发,很多开源框架也都要求至少JDK8,由于Java8中有很多重要的变化,如果不掌握Java8的这些新特性,可能我们在实际项目的开发中,有可能看不懂别人编写的代码,所以我们非常有必要掌握Java8的新特性,以满足日常开发的需求。正是考虑到我们工作求职的需要,本站为大家推出了免费的精品好课—Java8新特性之Stream流式操作,详细地为大家介绍了Java8中的重要新特性Stream式操作。

下面是我们的课程目录

 1-1 Stream流概述   (17:41)

 1-2 Stream流的几种获得方式   (08:45)

 1-3 Stream流的筛选操作   (09:27)

 1-4 Stream流的map映射   (07:17)

 1-5 Stream流的匹配与查找操作   (07:20)

 1-6 Stream流的reduce归约   (09:19)

 1-7 Stream把包装类对象映射到数值流   (04:27)

 1-8 Stream流的collect归约   (05:39)

 1-9 Stream流在开发中的应用1   (09:33)

 1-10 Stream流在开发中的应用2   (14:56)

 1-11 JDK8对HashMap性能的提升   (13:26)

 1-12 JDK8新增LocalDateTime类   (11:51)

 1-13 DateTimeFormmatter实现日期与字符串的相互转换   (07:43)

在使用流之前,首先需要拥有一个数据源,并通过StreamAPI提供的一些方法获取该数据源的流对象。数据源可以有多种形式:

集合:这种数据源较为常用,通过stream()方法即可获取流对象:List<Person> list = new ArrayList<Person>();

Stream<Person> stream = list.stream();

数组:通过Arrays类提供的静态函数stream()获取数组的流对象:String[] names = {"chaimm","peter","john"};

Stream<String> stream = Arrays.stream(names);

值:直接将几个值变成流对象:Stream<String> stream = Stream.of("chaimm","peter","john");

文件:

try(Stream<String> lines = Files.lines(Paths.get("文件路径名"),Charset.defaultCharset())){
//可对lines做一些操作
}catch(IOException e){
}

此外,我们还需要注意以下几点:

  • stream不存储数据,而是按照特定的规则对数据进行计算,一般会输出结果。
  • stream不会改变数据源,通常情况下会产生一个新的集合或一个值。
  • stream具有延迟执行特性,只有调用终端操作时,中间操作才会执行。

只要掌握到学习Stream流的特性,注意到一些我们Java8 Stream流式操作视频教程中提到的一些细节,学好Java stream流式操作指日可待!

0人推荐
共同学习,写下你的评论
0条评论
代码小兵286
程序员代码小兵286

45篇文章贡献179882字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

JavaWeb的3大组件

代码小兵49806-11 15:28

全面解析Cookie技术

代码小兵49806-11 15:51

浅谈JavaWeb架构演变

代码小兵49806-11 16:22

探讨Web开发中的Session存储与管理

代码小兵51603-29 17:28

JavaScript基础知识

 暴风城-小飞04-06 20:49

发评论

举报

0/150

取消