1.1概述
说到Strem便容易想到I/O Strem,而实际上,谁规定“流”就一定是流呢?在Java8中,得益于Lambda所带来的函数式编程,引入了一个全新的Stream概念,用于解决已有集合类库既有的弊端。
1.2传统集合遍历的弊端
需求:筛选出姓张且名字长度为3的人的名字并打印
List <String> list = new ArryList<> ();
list.add("张无忌");
list.add("周芷若");
list.add("赵敏");
list.add("老邱");
list.add("张三丰");
List<String> list1 = new ArryList<>();
//筛选姓张的的人名
for (String name : list1) {
if (name.startsWith("张")) {
list1.add(name);
}
}
List<String> list2 = new ArrayList<>();
// 筛选长度为3的人名
for (String name : list1) {
if (3 == name.length()) {
list2.add(name);
}
}
System.out.println(list2);
通过以上代码发现,传统的for循环不仅要专注做什么,还要专注怎么做,Java 8的Lambda让我们可 以更加专注于做什么(What),而不是怎么做(How)
List<String> list = new ArrayList<>();
list.add("张无忌");
list.add("周芷若")