【发布时间】:2018-08-24 23:57:52
【问题描述】:
我有一个关于 Java 流的问题。假设我有一个对象流,我想将这些对象中的每一个映射到多个对象。例如像
IntStream.range(0, 10).map(x -> (x, x*x, -x)) //...
在这里,我想将每个值映射到相同的值、平方和相同的值,但符号相反。我找不到任何流操作来做到这一点。我想知道是否最好将每个对象 x 映射到具有这些字段的自定义对象,或者将每个值收集到中间 Map(或任何数据结构)中。
我认为就内存而言,创建自定义对象可能会更好,但也许我错了。
在设计正确性和代码清晰性方面,哪种解决方案会更好?或者也许还有我不知道的更优雅的解决方案?
【问题讨论】:
-
试试
IntStream.range(0, 10).mapToObj(x -> new int[] {x, x*x, -x})。 -
但是对象是任何类型的同一类型?
-
@JoseDaSilva 不是我的情况,但从答案中我认为无论如何都没有直接的方法
标签: java lambda java-8 java-stream