1.什么是Stream
Stream 是Java中对集合操作(过滤、查找、映射......)的一种更为简便的封装。
使用Stream可以让代码更为简洁。
2.Stream的使用注意点
1.Stream的方法分为【终结方法】和【非终结方法】
【终结方法】:方法的返回值类型不再是Stream类型,不再支持链式调用,例如 forEach()方法;
【非终结方法】: 方法的返回值类型仍然是Stream类型,可以继续进行链式调用,例如 filter()方法。
2.每个Stream对象,只能被使用一次,使用完成后就会被关闭,再次使用时会抛出异常。
3.Stream对象如果不调用【终结方法】的话,中间的过程是不会执行的!(非常的关键)
4.Stream中比较经常的用到Lambda的内容,所以建议各位coder在使用Stream的时候先对Lambda表达式进行学习。
3.Stream的初体验
下面的案例代码中,体会一下:
1.Stream中数据的过滤操作:filter()方法
2.Stream中的数据遍历操作 : forEach()方法
3.不调用【终结方法】则中间的过程不会执行的特性
3.1 案例代码
package com.northcastle.I_stream;
import java.util.stream.Stream;
public class Application {
public static void main(String[] args) {
// 如果不调用终结方法,则中间的过程不会执行 演示
Stream.of("a","b","cc").filter(s ->{
System.out.println("==> "+s); // 打印一下这个传入的值
return s.length() > 1;
});
System.out.println("我大胆猜测,上面的不会执行,没有输出");
System.out.println("=======================");
System.out.println("我大胆猜测,下面的会正常输出");
Stream.of("11","22","333").filter(s ->{
System.out.println("==> "+s); // 打印一下这个传入的值
return s.length() > 1;
}).forEach(System.out::println);
}
}
3.2 执行结果
4.完成
Congratulations!
You are one step closer to success!