gpt4 book ai didi

multidimensional-array - java8数组流到二维数组

转载 作者:行者123 更新时间:2023-12-03 23:54:18 26 4
gpt4 key购买 nike

我是 Java8 的新手,无法使用流将一个数组映射到另一个二维数组。

我有一个二维数组,它是一种模式:

boolean[][] pattern = {
{true, true, false},
{true, false, true},
{false, true, true}
};

和包含键的第二个数组。

0 表示:从模式中取 0 个元素

1 表示:从模式中取 1 个元素,依此类推
int[] keys = {2, 1, 0};

从这两个数组中,我想生成另一个二维数组。在这种情况下,结果将如下所示:
boolean[][] result = {
{false, true, true},
{true, false, true},
{true, true, false}
};

这是Java7中的代码:
public boolean[][] producePlan(int[] keys, boolean[][] pattern) {
boolean[][] result = new boolean[keys.length][];
for (int i = 0; i < keys.length; i++) {
result[i] = pattern[keys[i]];
}
return result;
}

在 Java8 中,我只能打印每一行
Arrays.stream(keys).mapToObj(x -> pattern[x]).forEach(x -> System.out.println(Arrays.toString(x)));

但不能将其转换为二维数组。

请帮忙

最佳答案

你可以这样做,

boolean[][] result = Arrays.stream(keys).mapToObj(i -> pattern[i]).toArray(boolean[][]::new);

既然你有 Stream<boolean[]>map stage,你只需要提供一个数组生成器函数。

关于multidimensional-array - java8数组流到二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51624021/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com