目标: 演示Stream流的概述
什么是Stream流?
在Java 8中,得益于Lambda所带来的函数式编程,
引入了一个全新的Stream流概念 ,用于解决已有集合/数组类库既有的弊端。
Stream流能解决什么问题?
可以解决已有集合类库或者数组API的弊端。
Stream认为集合和数组操作的API很不好用,所以采用了Stream流简化集合和数组的操作!!
小结:
Stream流的核心思想:把集合或者数组转成一个Stream流(传送带)
然后使用Stream流的强大功能进行元素的处理!
public class StreamDemo01 {
public static void main(String[] args) {
// 需求:从集合中筛选出所有姓张的人出来。然后再找出姓名长度是3的人。
List<String> list = new ArrayList<>();
list.add("张无忌");
list.add("周芷若");
list.add("赵敏");
list.add("张强");
list.add("张三丰");
/* // 创建一个新集合存储姓张的人
List<String> zhangNames = new ArrayList<>();
for(String name : list){
if(name.startsWith("张")){
zhangNames.add(name);
}
}
System.out.println(zhangNames);
// 找出长度为3的名字
List<String> threeNames = new ArrayList<>();
for(String name : zhangNames){
if(name.length() == 3){
threeNames.add(name);
}
}
System.out.println(threeNames);*/
list.stream().filter(s -> s.startsWith("张"))
.filter(s -> s.length() == 3).forEach(s -> System.out.println(s));
}
}