资源说明:深入解析Jdk8中Stream流的使用让你脱离for循环
本文主要介绍了Jdk8中Stream流的使用,让开发者脱离传统的for循环。Stream流是Jdk8中引入的一种新式编程方式,能够使开发者更方便、更高效地处理数据。
什么是Stream流?
在Jdk1.8中引入了stream流的概念,这个“流”并不同于IO中的输入和输出流,它是Jdk中的一个类,具体位置在:java.util.stream.Stream。Stream流的操作主要分为三种:获取流、中间操作、最终操作。
如何获取流?
获取流,就是将其他对象(非Stream对象)转为Stream对象。只有两类对象可能转化为Stream对象,分别是:数组(这个数组中的元素必须是引用类型)和集合。
中间操作
从上边获取这个流对象时,我们就可以对这个Stream对象进行操作,在执行结束操作前,可以无限次的执行这个操作。在开发工具中可以看到这个类的源码,它的主要有以下几种操作:
* map:将一种类型的值转换成另外一种类型,并返回一个新的Stream。
* filter:遍历数据并检查、过滤其中的元素。
* flatMap:可用Stream替换值,然后将多个Stream连接成一个Stream,会将之前生成Stream流的每一个元素更换为一个新的Stream对象。
使用Stream流的好处
使用Stream流可以让开发者更方便地处理数据,例如,给你一个ArrayList用来保存学生的成绩,让你打印出其中大于60的成绩。
解决方案一:当然就是遍历这个ArrayList,然后使用if判断一下,如果其大于60,就将其输出。
解决方案二:使用Stream流操作,只需要一行代码。
```java
private static void printValue2(ArrayList arrList) {
arrList.stream().filter(i -> i > 60).forEach(System.out::println);
}
```
Lambda表达式
Lambda表达式是函数式编程的核心概念,它可以将函数作为参数传递给方法,可以使代码更加简洁和易读。在Stream流操作中,Lambda表达式被广泛使用,例如:
```java
Stream stream = Stream.of("a", "b", "hello")
.map(s -> s.toUpperCase());
```
Stream流是Jdk8中的一种新式编程方式,它可以使开发者更方便、更高效地处理数据。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。