Stream的流中间操作_filter
注意'中间操作'的方法都是在Stream接口里面,需要深入学习的话,建议搭配帮助文档搜索Stream,往下滑就能找到所有关于中间操作的方法
Stream
Stream流中间操作_filter的练习
xxxxxxxxxx
package ch26;
import java.util.ArrayList;
public class a_3_1测试 {
public static void main(String[] args) {
//创建一个集合,存储多个字符串元素
ArrayList<String> list = new ArrayList<String>();
list.add("张老三");
list.add("李四");
list.add("王蛋五");
list.add("张小六");
list.add("张七");
//-------------------------------------------------------------------------------------------
//需求1:把list集合中以张开头的元素在控制台输出,在控制台输出需要使用forEach方法
list.stream().filter((String s)->{
return s.startsWith("张");
}).forEach((s-> System.out.println(s)));
//使用Lambda表达式的省略模式、方法引用对上面的代码进行优化一下,如下
System.out.println("-----------");
list.stream().filter(s->s.startsWith("张")).forEach(System.out::println);
System.out.println("--------------------------");
//--------------------------------------------------------------------------------------------
//需求2:把list集合中长度为3的元素在控制台输出,在控制台输出需要使用forEach方法
list.stream().filter(s->s.length()==3).forEach(System.out::println);
System.out.println("--------------------------");
//---------------------------------------------------------------------------------------------
//需求3:把list集合中以张开头的,长度为3的元素在控制台输出
list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(System.out::println);
}
}