解决java8 stream没法复用问题(为要执行的每个终端操做建立一个新的Stream链)

java8 stream只能进行一次终止操做,第二次终止操做异常。下面提供一种可重复使用stream的方法(为要执行的每个终端操做建立一个新的Stream链):java

Supplier<Stream<String>> streamSupplier =
    () -> Stream.of("d2", "a2", "b1", "b3", "c")
            .filter(s -> s.startsWith("a"));

streamSupplier.get().anyMatch(s -> true);   // ok
streamSupplier.get().noneMatch(s -> true);  // ok
相关文章
相关标签/搜索