Java语言怎么实现3个数组合并成二维数组

Java语言怎么实现3个数组合并成二维数组,每一个数组是新的二维数组的一行?这个数组名怎么用循环的办法表示呢

看下是这样意思吗?

img

代码

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();
        }
    }
}


你可以看看这篇博客:

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/1077408
  • 你也可以参考下这篇文章:java实现输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
  • 除此之外, 这篇博客: 【Java数据结构与算法】二维数组与稀疏数组的转化中的 稀疏数组转原始的二维数组思路 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    1. 先读取稀疏数组的第一行,根据第一行的数据,窗口原始二维数组,比如上面的chessArr2=int[11][11];
    2. 在读取稀疏数组后几行的数据,并赋给这个原始的二维数组即可。

    代码实例

    //二维数组转稀疏数组转二维数组
    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();
            }
        }
    }
    
    

    编程我也是初学者,难免有写错的地方,希望大家看完之后,发现错误可以评论出来,谢谢大家

  • 您还可以看一下 汪翠老师的java项目实战之欢乐斗地主游戏开发教程 毕业项目课程设计带源码课程中的 接收从服务器端群发回来的消息并添加地主牌小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    要将3个一维数组合并成一个二维数组,可以按照以下步骤进行:

    1. 创建一个空的二维数组,用于存放合并后的结果。二维数组的行数为3,列数为单个一维数组的长度。
    2. 遍历每个一维数组,将每个一维数组的元素依次复制到二维数组的对应行中。
    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个一维数组合并成了一个二维数组。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^