Stream接口:
不是存储数据结构,数据源可以是一个集合,为了函数式编程创造,
惰式执行,数据只能被消费一次
两种类型的操作方法:
1、中间操作(生成一个Stream)
2、结束操作(执行计算操作)
forEach方法
Stream<String> stream= Stream.of("good","good","study","day","day","up");
// stream.forEach(System.out::println);
/filter方法(过滤) 找出大于三个字母的,并输出
// stream.filter((s)->s.length()>3).forEach(System.out::println);
//distinct方法 (去除重复元素)
// stream.distinct().forEach(s->System.out.println(s));
//map(映射)
//sp:转化为大写,并映射到另一个流中
// stream.map(s->s.toUpperCase()).forEach(System.out::println);
//flatMap(将两个List一起遍历,链接到一起)
// Stream<List<Integer>> ss=Stream.of(Arrays.asList(1,2,3),Arrays.asList(4,5));
// ss.flatMap(list->list.stream()).forEach(System.out::println);
//reduce方法
// Optional<String> opt = stream.reduce((s1,s2)->s1.length()>=s2.length()?s1:s2);
// System.out.println(opt.get());
//collect方法 (可以根据流生成不同的集合)
List<String> list = stream.collect(Collectors.toList());
list.forEach(System.out::println);
package com.chen;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Stream接口:不是存储数据结构,数据源可以是一个集合,为了函数式编程创造,
* 惰式执行,数据只能被消费一次
*
* 两种类型的操作方法:
* 1、中间操作(生成一个Stream)
* 2、结束操作(执行计算操作)
* @author 11010
*
*/
public class StreamDemo {
public static void main(String[] args) {
//forEach方法
Stream<String> stream= Stream.of("good","good","study","day","day","up");
// stream.forEach(System.out::println);
//filter方法(过滤) 找出大于三个字母的,并输出
// stream.filter((s)->s.length()>3).forEach(System.out::println);
//distinct方法 (去除重复元素)
// stream.distinct().forEach(s->System.out.println(s));
//map(映射)
//sp:转化为大写,并映射到另一个流中
// stream.map(s->s.toUpperCase()).forEach(System.out::println);
//flatMap(将两个List一起遍历,链接到一起)
// Stream<List<Integer>> ss=Stream.of(Arrays.asList(1,2,3),Arrays.asList(4,5));
// ss.flatMap(list->list.stream()).forEach(System.out::println);
//reduce方法
// Optional<String> opt = stream.reduce((s1,s2)->s1.length()>=s2.length()?s1:s2);
// System.out.println(opt.get());
//collect方法 (可以根据流生成不同的集合)
List<String> list = stream.collect(Collectors.toList());
list.forEach(System.out::println);
// :: 方法的引用
//引用静态方法 Integer::valueOf
//引用对象的方法 list::add
//引用构造方法 ArrayList::new
}
}