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();
// ...