Java流API-自定义无限源

Java流API-自定义无限源,java,java-stream,Java,Java Stream,我想创建一个元素流,能够在创建后向其中添加元素。我还没有找到任何关于使用自定义源创建无限流的可能性的信息 例如:我想用音频流中的新字节填充流。在输出时,我得到流。我应该有一种机制,能够在运行时用字节填充流 通过调用static Stream.concat()方法,我们可以轻松地将给定元素预先添加到流中: 请注意,流可以表示无限序列,因此有时您可能永远无法访问集合中的新元素。Stream.generate是您要查找的内容。您能更具体一点吗?@shmosel editedIt接近我想要做的,但流不能

我想创建一个元素流,能够在创建后向其中添加元素。我还没有找到任何关于使用自定义源创建无限流的可能性的信息


例如:我想用音频流中的新字节填充流。在输出时,我得到
。我应该有一种机制,能够在运行时用字节填充流

通过调用static Stream.concat()方法,我们可以轻松地将给定元素预先添加到流中:


请注意,流可以表示无限序列,因此有时您可能永远无法访问集合中的新元素。

Stream.generate
是您要查找的内容。您能更具体一点吗?@shmosel editedIt接近我想要做的,但流不能进行任何重新分配。因此,我返回我的流,我需要在不更改任何引用的情况下向其中添加元素。
Stream.generate
,有什么帮助吗?@VaniaShows Stream.generate可能不是您需要的。不幸的是,它接受了一个供应商。您无法从同一供应商创建不同的对象,因此Stream.generate用于生成随机元素。试着看
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
Stream<Integer> newStream = Stream.concat(Stream.of(6), stream);
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
Stream<Integer> newStream = Stream.concat(stream, Stream.of(6));
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 6);
List<Integer> list = stream.collect(Collectors.toList());
list.add(4, 5);
Stream<Integer> newStream = list.stream();