gpt4 book ai didi

java - 如何通过一条语句将二维数组分成一维数组?

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:08 24 4
gpt4 key购买 nike

如果我有:

int[] a = {1,2,3,4,5};
int[] b = {5,7,8,9};
int[][] array2d ={a,b};

我可以将 array2d 分成 2 个 1d 数组:

int[] A = new int[array2d[0].length];
int[] B = new int[array2d[1].length];
for(int i = 0; i < array2d.lenght; i++){
A[i] = array2d[i][0];
B[i] = array2d[i][1];
}

但是可以通过一条语句来完成吗?

例如,如果我有:

int[][] array2dx = new int[2][1000];

我可以轻松做到:

int[] Ax = array2dx[0];
int[] Bx = array2dy[1];

所以我正在寻找类似的东西(分为2个数组) array int[1000][2];

最佳答案

but can it be done by one statement?

据我所知,没有任何内置方法。听起来您基本上想编写一个转置方法:

 static int[][] transpose(int[][] input) {
// TODO: Validation. Detect empty and non-rectangular arrays.
int[][] ret = new int[input[0].length][];
for (int i = 0; i < ret.length; i++) {
ret[i] = new int[input.length];
}
for (int i = 0; i < input.length; i++) {
for (int j = 0; i < ret.length; j++) {
ret[j][i] = input[i][j];
}
}
return ret;
}

int[1000][2] 转置为 int[2][1000] 后,您可以简单地获取两个 int[1000] 数组,正如您已经展示的那样。

关于java - 如何通过一条语句将二维数组分成一维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13599807/

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