Java语言怎么实现3个数组合并成二维数组,每一个数组是新的二维数组的一行?这个数组名怎么用循环的办法表示呢
看下是这样意思吗?
代码
public class ArrayMerge {
public static void main(String[] args) {
// 假设三个一维数组分别为 array1, array2, array3
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] array3 = {7, 8, 9};
// 创建二维数组,行数为3(对应三个一维数组),列数为每个一维数组的长度
int[][] twoDimArray = new int[3][];
twoDimArray[0] = array1;
twoDimArray[1] = array2;
twoDimArray[2] = array3;
// 循环打印二维数组
for (int i = 0; i < twoDimArray.length; i++) {
for (int j = 0; j < twoDimArray[i].length; j++) {
System.out.print(twoDimArray[i][j] + " ");
}
System.out.println();
}
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话:代码实例
//二维数组转稀疏数组转二维数组
public class SparseArray {
public static void main(String[] args){
//创建原始的二维数组 11*11
//0表示没有棋子,1表示白子,2表示黑子
int chessArr1[][] = new int[11][11];
chessArr1[1][2] = 1;
chessArr1[2][3] = 2;
//输出原始的二维数组
System.out.println("原始的二维数组");
for (int[] row : chessArr1){
for (int data : row){
System.out.print("%d\t" + data);
}
System.out.println();
}
//将二维数组转为稀疏数组
//1.先遍历二维数组得到非0数据的个数
int sum = 0;
for (int i = 0;i < chessArr1.length;i ++){
for (int j = 0; j < chessArr1.length;j ++){
if (chessArr1[i][j] != 0){
sum ++;
}
}
}
//2.创建对应的稀疏数组
int sparseArr[][] = new int[sum + 1][3];
//给稀疏数组赋值
sparseArr[0][0] = 11;
sparseArr[0][1] = 11;
sparseArr[0][2] = sum;
//遍历二维数组,将非0的值存放到稀疏数组种
int count = 0; //coun 用于记录第几个非0数据,就是排序
for (int i = 0;i < chessArr1.length;i ++){
for (int j = 0; j < chessArr1.length;j ++){
if (chessArr1[i][j] != 0){
count ++;
sparseArr[count][0] = i;
sparseArr[count][1] = j;
sparseArr[count][2] = chessArr1[i][j];
}
}
}
//输出稀疏数组的形式
System.out.println();
System.out.println("得到的稀疏数组为~~");
for (int i = 0;i < sparseArr.length;i ++){
System.out.printf("%d\t%d\t%d\t\n",sparseArr[i][0],sparseArr[i][1],sparseArr[i][2]);
}
System.out.println();
/*将稀疏数字恢复成原始的二维数组
//先读取稀疏数组的第一行,根据第一行的数据,窗口原始二维数组,比如上面的chessArr2=int[11][11];
在读取稀疏数组后几行的数据(从第二行开始),并赋给这个原始的二维数组即可。*/
int chessArr2[][] = new int[sparseArr[0][0]][sparseArr[0][1]];
for (int i = 1;i < sparseArr.length; i ++){
chessArr2[sparseArr[i][0]][sparseArr[i][1]] = sparseArr[i][2];
}
//输出恢复后的二维数组
System.out.println();
System.out.println("恢复后的二维数组~~");
for (int[] row : chessArr2){
for (int data : row){
System.out.printf("%d\t",data);
}
System.out.println();
}
}
}
编程我也是初学者,难免有写错的地方,希望大家看完之后,发现错误可以评论出来,谢谢大家
要将3个一维数组合并成一个二维数组,可以按照以下步骤进行:
以下是示例代码:
// 假设三个一维数组分别为arr1, arr2, arr3
int[] arr1 = {1, 2, 3};
int[] arr2 = {4, 5, 6};
int[] arr3 = {7, 8, 9};
// 创建一个二维数组,行数为3,列数为单个一维数组的长度
int[][] result = new int[3][arr1.length];
// 将每个一维数组的元素依次复制到二维数组的对应行中
for (int i = 0; i < arr1.length; i++) {
result[0][i] = arr1[i];
result[1][i] = arr2[i];
result[2][i] = arr3[i];
}
// 打印合并后的二维数组
for (int i = 0; i < result.length; i++) {
for (int j = 0; j < result[i].length; j++) {
System.out.print(result[i][j] + " ");
}
System.out.println();
}
执行上述代码,输出结果为:
1 2 3
4 5 6
7 8 9
这样就成功将3个一维数组合并成了一个二维数组。