Java之Stream流概述
概述
在Java 8 中,得益于lambda比所带来的函数式编程,引入了一个全新的Stream流概念。
目的:用于简化集合和数组操作的API。
初步体验
需求:按照下面的要求完成集合的创建与遍历
-
创建一个集合存储多个字符串元素。
List<String> names = new ArrayList<>();
list.add("张文君")
list.add("张文俊")
list.add("周文君")
list.add("周三")
list.add("李达")
list.add("张俊")
-
把集合中所有以"张"开头的元素存储到一个新的集合。
-
把"张"开头的集合中的长度为3的元素存储到一个新的集合。
-
遍历上一步得到的集合中的元素输出。
代码实现
笨比版本
List<String> names = new ArrayList<>();
Collections.addAll(names , "张文君","张文俊","周文君","周三","李达","张俊");
System.out.println("全部名字:"+names);
//1、从集合中找出姓张的放到新集合
List<String> zhangName = new ArrayList<>();
for (String name : names) {
if (name.startsWith("张")){
zhangName.add(name);
}
}
System.out.println("姓张的:"+zhangName);
//2、从集合中找出长度为3的名字放到新集合
List<String> zhangThreeName = new ArrayList<>();
for (String s : zhangName) {
if (s.length() == 3)
zhangThreeName.add(s);
}
System.out.println("长度为3且姓氏为张:"+zhangThreeName);
names.stream().filter(s -> s.startsWith("张")).filter(s ->s.length() == 3).forEach(s-> System.out.println(s));
总结
-
Stream流的作用是什么,结合了什么技术?
简化集合、数组操作的API。结合了lambda表达式。
-
说说Stream流的思想和使用步骤。
-
先得到集合或者数组的Stream流(就是一根传送带)。
-
把元素放上去。
-
-