有没有办法将元素T
插入Stream<T>
?
ArrayList<Foo> foos = new ArrayList<>();
Foo foo = new Foo();
Stream<Foo> stream = Stream.concat(foos.stream(), Stream.of(foo));
还有其他方法吗?基本上是一种foo.stream().add(foo)
... - 当然add()并不存在。 -
答案 0 :(得分:8)
不,没有其他方法可以在标准Java Stream API中向给定流添加元素。某些第三方库(包括我的StreamEx库提供了additional方便的方法来执行此操作:
Stream<Foo> stream = StreamEx.of(foos).append(foo);
在内部,它使用相同的concat
方法。
jOOL库中提供了类似的方法:
Stream<Foo> stream = Seq.seq(foos).concat(foo);
答案 1 :(得分:1)
假设foos
不存在。您可以使用Stream
而不是Stream.Builder
构建ArrayList
,如下所示:
Stream.Builder<Integer> builder = Stream.builder();
for (int i = 0; i < 10; i++) {
builder.accept(i);
}
Stream<Integer> build = builder.add(50).build();
// ...