为什么没有IntStream.flatMapToObj()?
我正在尝试做这样的事情:
Stream stream = IntStream.of(...) .flatMapToObj(i -> getStreamOfObjects(i));
不幸的是,即使在Java 9中, IntStream.flatMapToObj()
也不存在。
- 为什么遗漏了?
- 什么是推荐的解决方法?
它为什么被遗漏了?
API提供可重用的构建块。 这里的相关构建块是IntStream
, mapToObj
, flatMap
。 通过这些,您可以实现您想要的效果:将流映射到对象,然后获得平面地图。 提供构建块的排列是不实际的,并且难以扩展。
什么是推荐的解决方法?
如前所述,使用可用的构建块( mapToObj
+ flatMap
):
Stream
写吧
IntStream.of(...).mapToObj(i -> getStreamOfObjects(i)).flatMap(stream -> stream)
如果你不介意装箱每个int
值的成本,使用盒装流将有效。
Stream