将元素插入流中

Joh*_*ler 6 java java-8 java-stream

有没有办法将元素T插入Stream<T>

    ArrayList<Foo> foos = new ArrayList<>();
    Foo foo = new Foo();

    Stream<Foo> stream = Stream.concat(foos.stream(), Stream.of(foo));
Run Code Online (Sandbox Code Playgroud)

还有另外一种方法吗?基本上是一种foo.stream().add(foo)...... - 当然add()不存在.-

Tag*_*eev 8

不,没有其他方法可以在标准Java Stream API中向给定流添加元素.一些第三方库(包括我的StreamEx库)提供了其他方便的方法来执行此操作:

Stream<Foo> stream = StreamEx.of(foos).append(foo);
Run Code Online (Sandbox Code Playgroud)

在内部它使用相同的concat方法.

jOOL库中提供了类似的方法:

Stream<Foo> stream = Seq.seq(foos).concat(foo);
Run Code Online (Sandbox Code Playgroud)