下面我们通过代码了解常见创建Stream的几种方式吧。
public class CreateStream {
public static void main(String[] args) {
createStreamFromCollection().forEach(System.out::println);
}
//1.通过Collection
private static Stream<String> createStreamFromCollection(){
List<String> list = Arrays.asList("Hello", "Huawei", "World");
return list.stream();
}
//2.通过Stream静态方法of
private static Stream<String> createStreamFromValues(){
return Stream.of("Hello", "Huawei", "World");
}
//3.通过Arrays
private static Stream<String> createStreamFromArrays(){
String[] str = {"Hello", "Huawei", "World"};
return Arrays.stream(str);
}
//4.通过Files
private static Stream<String> createStreamFromFiles(){
Path path = Paths.get("d:\\createStream.txt");
try {
Stream<String> lines = Files.lines(path);
} catch (IOException e) {
e.printStackTrace();
}
}
//5.通过Iterator
private static Stream<Integer> createStreamFromIterator(){
return Stream.iterate(0, n -> n*2).limit(10);
}
//6.通过Generator
private static Stream<Double> createStreamFromGenerator(){
return Stream.generate(Math::random).limit(10);
}
//6.通过Pattern
private static Stream<Double> createStreamFromPattern(){
String value = "A B C";
return Pattern.compile("\\W").splitAsStream(value);
}
}