gpt4 book ai didi

java - 以特定方式乘以二维数组的大小?

转载 作者:行者123 更新时间:2023-11-30 11:17:44 25 4
gpt4 key购买 nike

我环顾四周,但没有找到答案。用一个例子来解释是最容易的。假设我有一个包含值的二维数组

{{1, 2, 3},
{4, 5, 6}}

我想做的是乘以二维数组的大小,使得生成的数组中的每个元素都重复 x 次(最好是 32 次)。示例最终结果:

{{1, 1, 2, 2, 3, 3},
{1, 1, 2, 2, 3, 3},
{4, 4, 5, 5, 6, 6},
{4, 4, 5, 5, 6, 6}}

在这种情况下,原始值乘以 2,因此每个值都生成 2 乘 2 的正方形。有什么想法吗?

最佳答案

假设您使用 int:

int x = //...
int[][] input = //...
int[][] result = new int[input.length * x][];
final int size = input[0].length;

for (int i = 0; i < input.length; i++) {
int[] inputArray = input[i];
int[] array = new int[size * x];
final int offset = i * x;

result[offset] = array;

// fill first of the equal lines
for (int j = 0; j < size; j++) {
final int offset2 = j * x;
// copy every element x times
Arrays.fill(array, offset2, offset2 + x, inputArray[j]);
}

// copy line x-1 times
for (int j = 1; j < x; j++) {
// if you needn't write to the result, use array as right hand side instead
result[offset + j] = Arrays.copyOf(array, array.length);
}
}

关于java - 以特定方式乘以二维数组的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24226187/

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