获取流
在使用流之前,首先需要拥有一个数据源,并通过StreamAPI提供的一些方法获取该数据源的流对象。数据源可以有多种形式:
集合
这种数据源较为常用,通过stream()方法即可获取流对象:
List<Person> list = new ArrayList<Person>();
Stream<Person> stream = list.stream();
数组
通过Arrays类提供的静态函数stream()获取数组的流对象:
String[] names = {"chaimm","peter","john"};
Stream<String> stream = Arrays.stream(names);
值
直接将几个值变成流对象:
Stream<String> stream = Stream.of("chaimm","peter","john");
文件
try(Stream lines = Files.lines(Paths.get(“文件路径名”),Charset.defaultCharset())){
//可对lines做一些操作
}catch(IOException e){
}
PS:Java7简化了IO操作,把打开IO操作放在try后的括号中即可省略关闭IO的代码。
空的straem
Stream<Object> empty = Stream.empty();
创建无限stream
stream有2个创建无限流的方法,generate的方法接受一个无参数的函数,
Stream.generate(Math::random);