高级复杂的流操作
private static List<Person> list = Arrays.asList(new Person("aa", 12), new Person("bb", 13), new Person("bb", 14),
new Person("bb", 15), new Person("bb", 16));public static void main(String[] args) {
}
public static void flatmap() {
// flatmap 返回值是一个流stream 用于流的转化 合并
list.stream().flatMap(t -> Stream.of(t.getName())).forEach(action -> {
System.out.println(action);
});
}
public static void mapDemo() {
// map 是用来做类型转换的 传入T 返回 R 对于流中的所有的数据都会处理
list.stream().map(t -> {
if (t.getAge() > 13) {
return "少年";
}
return "青年";
}).forEach(action -> {
System.out.println(action);
});
}
public static void filter() {
// filter 过滤条件 可以是很复杂的多重过滤 返回true就是通过 返回false被过滤掉
list.stream().filter(t -> {
if (t.getAge() > 15) {
return t.getName().equals("bb");
}
return false;
}).forEach(action -> {
System.out.println(action);
});
}