Java集合--Stream

Stream 是用函数式编程方式在集合类上进行复杂操作的工具,其集成了Java 8中的众多新特性之一的聚合操作,开发者可以更容易地使用Lambda表达式,并且更方便地实现对集合的查找、遍历、过滤以及常见计算等。

独立使用Stream的步骤:

1、使用Stream或XxxStream的builder()类方法创建该Stream对应的builder
2、重复调用builder()的add()方法向该流添加多个元素
3、调用builder()方法获取对应的Stream
4、调用Stream的聚集方法
import java.util.Collection;
import java.util.ArrayList;
public class StreamClass{
    public static void main(String[] args){
        Collection<String> c = new ArrayList<>();
        c.add("lilei");
        c.add("hanmeimei");
        c.add("Jim Green");
        c.add("Lily");
        c.add("Lucy");
        //String str = c.stream();错误:无法将void转换成String
        c.stream()
            .filter(ele -> ((String)ele).contains("L"))
            .forEach(ele -> System.out.println(ele));
    }
}
  1. 创建Stream:通过stream()方法,取得集合对象的数据集。
  2. Intermediate:通过一系列中间(Intermediate)方法,对数据集进行过滤、检索等数据集的再次处理。如上例中,使用filter()方法来对数据集进行过滤。
  3. Terminal通过最终(terminal)方法完成对数据集中元素的处理。如上例中,使用forEach()完成对过滤后元素的打印

创建Stream的方式:

从Collection和数组获得
Collection.stream();
Collection.parallelStream();
Arrays.String(T array) 或者 Stream.of()

从BufferedReader获得
java.io.BufferedReader.lines();

静态工厂
java.util.stream.IntStream.range();
java.nio.file.Files.walk();

自己构造
java.util.Spilterator

其他 
Random.ints();
BitSet.stream();
Pattern.spiltAsStream(java.lang.charSequence);
JarFile.stream();

流操作的分类

猜你喜欢

转载自www.cnblogs.com/zaijie/p/11094357.html