java – 为流中已有的每个元素添加一个元素到流的末尾

前端之家收集整理的这篇文章主要介绍了java – 为流中已有的每个元素添加一个元素到流的末尾前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给定函数函数< T,T> f和流< T>创造新的流< T>的好方法(良好的可读性,良好的性能)是什么?它首先包含原始元素,然后是由f转换的元素.

有人可能认为这会起作用:

Stream.concat(ts,ts.map(f));

但这不起作用,导致异常:

java.lang.IllegalStateException: stream has already been operated upon or closed

注意:顺序很重要:原始元素必须以正确的顺序排在第一位,然后按匹配顺序排列转换后的元素.

解决方法

你不能打开一瓶酒,然后将瓶子传递给另一个人并让他再次打开它.

因此,我认为通过溪流的性质来实现你的要求是不可能的.

每个流都有一个“处理”链.你不能有两个.

所以你能得到的最接近的就是从“它的起源”开始

Stream.concat(someList.stream(),someList.stream().map(f));

例如.当然,如果你没有这个清单,你可以去:

List<Whatever> someList = ts.collect(Collectors.asList());

第一.

猜你在找的Java相关文章