Java 8 Stream 流已被操作或关闭,在Java 8中,Stream不能重复使用,一旦被使用,流将被关闭。那有些时候我们需要重复使用流该怎么办呢?
我们可以巧用java 8的Suppliers接口
Supplier接口产生一个给定类型的结果。与Function不同的是,Supplier没有输入参数。
package test;
import java.util.function.Supplier;
import java.util.stream.Stream;
public class StreamMulltiUse {
public static void main(String[] args) {
String[] array = {"1","2","3","4","5","6","7"};
Supplier<Stream<String>> streamSupplier = () -> Stream.of(array);
//get一个新的stream
streamSupplier.get().forEach(System.out::println);
//再次get一个新的stream
streamSupplier.get().forEach(System.out::println);
}
}