我知道Java流对象是不允许的forked stream。但是也可以想象一个人会对同一个流执行多个操作。假设我要映射对象列表,但还要总结所有对象的度量。我想知道是否有可能在不将数据转储到列表的情况下做到这一点。Stream<Thing> thingStream = ...;int accumulation = thingStream.mapToInt(Thing::measure).sum();List<Another> results = thingStream.map(t -> toAnother(t)).collect(toList());我知道可以使用,Stream#peek但听起来很黑。
2 回答
开满天机
TA贡献1786条经验 获得超13个赞
每个终端操作在源链上调用iterator()。您只能调用一个终端操作,因为Stream不允许对其管道进行多次遍历。这样做会产生IllegalStateException
。选择该文件是为了保持一致性,以支持单发流源,例如从网络读取文件或字节。
添加回答
举报
0/150
提交
取消