1 通过collections进行创建
List<String> list = Arrays.asList("hello", "alex", "wangwenjun", "world", "stream");
list.stream().forEach(System.out::print);
2 通过values进行创建
Stream.of("hello", "alex", "wangwenjun", "world", "stream").forEach(System.out::println);
3 通过arrays进行创建
String[] strings = {"hello", "alex", "wangwenjun", "world", "stream"};
Arrays.stream(strings).forEach(System.out::println);
4 通过files进行创建
Path path = Paths.get("D:\\CompletableFutureInAction1.java");
try (Stream<String> streamFromFile = Files.lines(path)) {
streamFromFile.forEach(System.out::println);
} catch (IOException e) {
throw new RuntimeException(e);
}
5 通过iterate创建
Stream<Integer> stream = Stream.iterate(0, n -> n + 2).limit(10);
tream.forEach(System.out::println);
:输出结果为
0
2
4
6
8
10
12
14
16
18
6 通过generate创建
Stream.generate(Math::random).limit(10).forEach(System.out::println);
其中我们可以使用如下代码,进行生成自己所需要的一些对象Stream
private static Stream<Obj> createObjStreamFromGenerate() {
return Stream.generate(new ObjSupplier()).limit(10);
}
static class ObjSupplier implements Supplier<Obj> {
private int index = 0;
private Random random = new Random(System.currentTimeMillis());
@Override
public Obj get() {
index = random.nextInt(100);
return new Obj(index, "Name->" + index);
}
}
static class Obj {
private int id;
private String name;
public Obj(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
@Override
public String toString() {
return "Obj{" +
"name='" + name + '\'' +
", id=" + id +
'}';
}
}