一、什么是Stream流?
在Java 8中,得益于Lambda所带来的函数式编程, 引入了一个全新的Stream流概念。
目的:用于简化集合和数组操作的API。
Stream流思想:
Stream流式思想的核心
- 先得到集合或者数组的Stream流(就是一根传送带)
- 把元素放上去
- 然后就用这个Stream流简化的API来方便的操作元素。
案例:体验Stream流的作用
package stream;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 把集合中所有以"张"开头的元素存储到一个新的集合
* 把"张"开头的集合中的长度为3的元素存储到一个新的集合
* 遍历上一步得到的集合中的元素输出。
* */
public class StreamTest {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张无忌");
list.add("周芷若");
list.add("赵敏");
list.add("张强");
list.add("张三丰");
Stream<String> stream = list.stream();
//
// Stream<String> zhangStream =stream.filter(new Predicate<String>() {
// @Override
// public boolean test(String s) {
// if (s.startsWith("张")&&s.length()==3){
// return true;
// }
// return false;
// }
// });
//========================================================= // 简化 一行代码搞定
List<String> coll = list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).collect(Collectors.toList());
System.out.println(coll);
//==================================================================
// Stream<String> zhangStream = stream.filter( s-> s.startsWith("张"));
// List<String> collect = zhangStream.collect(Collectors.toList());
// System.out.println(collect);
// List<String> zhanglist = new ArrayList<String>();
// for (int i = 0; i < list.size(); i++) {
// String s = list.get(i);
// if (s.startsWith("张")){
// zhanglist.add(s);
// }
// }
// List<String> threelist = new ArrayList<String>();
// for (String s:list){
// if (s.length()==3){
// threelist.add(s);
// }
// }
}
}
小结:
1、Stream流的作用是什么,结合了什么技术?
简化集合、数组操作的API。结合了Lambda表达式。
2、说说Stream流的思想和使用步骤。
先得到集合或者数组的Stream流(就是一根传送带)。
把元素放上去。
然后就用这个Stream流简化的API来方便的操作元素。
二、Stream流获取
Stream操作集合或者数组的第一步是先得到Stream流,然后才能使用流的功能。
三、Stream流常用方法(中间方法)
1、Stream流常用API(中间操作方法)
2、Stream流的常见终结操作方法(终结方法)
tips. 终结和非终结方法的含义是什么?
终结方法后流不可以继续使用,非终结方法会返回新的流,支持链式编程。
四、收集Stream流
1、Stream流的收集操作
收集Stream流的含义:就是把Stream流操作后的结果数据转回到集合或者数组中去。
Stream流:方便操作集合/数组的手段。
集合/数组:才是开发中的目的。
2、Stream流的收集方法
Collectors工具类提供了具体的收集方式
本文含有隐藏内容,请 开通VIP 后查看