Java 将元素插入到流中

Java 将元素插入到流中,java,java-8,java-stream,Java,Java 8,Java Stream,是否有方法将元素T插入流 ArrayList foos=new ArrayList(); Foo-Foo=新的Foo(); Stream-Stream=Stream.concat(foos.Stream(),Stream.of(foo)); 还有别的办法吗?基本上是一种foo.stream().add(foo)…-当然add()不存在- 不,在标准Java流API中,没有其他方法可以向给定流添加元素。包括my library在内的一些第三方库提供了方便的方法: Stream<Foo>

是否有方法将元素
T
插入

ArrayList foos=new ArrayList();
Foo-Foo=新的Foo();
Stream-Stream=Stream.concat(foos.Stream(),Stream.of(foo));

还有别的办法吗?基本上是一种
foo.stream().add(foo)
…-当然add()不存在-

不,在标准Java流API中,没有其他方法可以向给定流添加元素。包括my library在内的一些第三方库提供了方便的方法:

Stream<Foo> stream = StreamEx.of(foos).append(foo);

假设
foos
不存在。您可以使用
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();
// ...
Stream.Builder=Stream.Builder();
对于(int i=0;i<10;i++){
建造商接受(i);
}
streambuild=builder.add(50.build();
// ...

concat
方法有什么困扰您的地方?@realponsibilist嗯,它有点长。看起来像是一个“解决办法”,关于性能,但老实说,我需要搜索更多。很高兴知道,这可能非常有用。
Stream<Foo> stream = Seq.seq(foos).concat(foo);
Stream.Builder<Integer> builder = Stream.builder();
for (int i = 0; i < 10; i++) {
    builder.accept(i);
}
Stream<Integer> build = builder.add(50).build();
// ...