我正在尝试将基于 map 的 Stream
转换为二维数组。我已经想出如何将它存储在一维数组中。这是工作代码片段:
Float[] floatArray = map.entrySet()
.stream()
.map(key -> key.getKey().getPrice())
.toArray(size -> new Float[size]);
当我执行上面的代码时,我的 Float
数组按预期填充。现在我需要将其扩展到一个二维数组,我需要将结果存储在二维数组的第一维中,如下所示:
Float[][1] floatArray = map.entrySet()
.stream()
.map(key -> key.getKey().getPrice())
.toArray(size -> new Float[size][1]);
上面的代码不起作用。你能告诉我如何用 Java 8 流完成这个任务吗?提前致谢!
最佳答案
如果你看<A> A[] toArray(IntFunction<A[]> generator)
,你会看到它转换了一个 Stream<A>
到 A[]
, 这是 A
的一维数组元素。所以为了让它创建一个二维数组,Stream
的元素必须是数组。
因此,您可以先创建一个二维数组 map
你的元素Stream
到一维数组,然后调用 toArray
:
Float[][] floatArray =
map.entrySet()
.stream()
.map(key -> new Float[]{key.getKey().getPrice()})
.toArray(size -> new Float[size][1]);
关于java - 如何将 Java 8 Stream 转换为二维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47397467/