在java中在最终2D数组中追加2D数组

在java中在最终2D数组中追加2D数组,java,arrays,data-structures,Java,Arrays,Data Structures,在最终的2D数组中添加2D数组的列表时出现问题 问题陈述: final_array = {{0,0,0,1}, {0,1,0,2}}; array1={{0,0}, {0,0}}; array2={{0,1}, {0,2}}; array3={{1,0}, {1,1}}; array4={{0,3}, {1,4}}; final_array = {{0,0,0,1,1,0,0,3},

在最终的
2D数组
中添加
2D数组的列表时出现问题

问题陈述:

final_array = {{0,0,0,1},
               {0,1,0,2}};
array1={{0,0},
        {0,0}};

array2={{0,1},
        {0,2}};

array3={{1,0},
       {1,1}};

array4={{0,3},
       {1,4}};

final_array = {{0,0,0,1,1,0,0,3},
               {0,0,0,2,1,1,1,4}};
如果我有2个
2D数组

array1 = {{0,0},
          {0,1}};

array2 = {{0,1},
          {0,2}};
我想要此表单中的最终2D数组:

final_array = {{0,0,0,1},
               {0,1,0,2}};
array1={{0,0},
        {0,0}};

array2={{0,1},
        {0,2}};

array3={{1,0},
       {1,1}};

array4={{0,3},
       {1,4}};

final_array = {{0,0,0,1,1,0,0,3},
               {0,0,0,2,1,1,1,4}};
并且它不应该依赖于大小。它应该适用于不同的尺寸。比如:

final_array = {{0,0,0,1},
               {0,1,0,2}};
array1={{0,0},
        {0,0}};

array2={{0,1},
        {0,2}};

array3={{1,0},
       {1,1}};

array4={{0,3},
       {1,4}};

final_array = {{0,0,0,1,1,0,0,3},
               {0,0,0,2,1,1,1,4}};
我试图实现以下目标,但没有达到预期效果:

import java.util.*;
class Main {
  public static void main(String[] args) {
    int[][] a = {{0,0},
                      {0,0}};
    int[][] b = {{0,1},
                      {0,1}};
    String array1_str = Arrays.deepToString(a);
    String array2_str = Arrays.deepToString(b);
    System.out.println(Arrays.deepToString(append(a, b)));

  }

  public static int[][] append(int[][] a, int[][] b) {
        int[][] result = new int[a.length + b.length][];
        System.arraycopy(a, 0, result, 0, a.length);
        System.arraycopy(b, 0, result, a.length, b.length);
        return result;
    }
}

如何实现这种附加?

您可以在java.util中使用2D ArrayList和List。您可以在二维数组中循环,填充列表并将其附加到数组列表中,然后对第二行执行此操作,等等

您可以尝试以下方式:

List<List<Integer>> finalArray = new ArrayList<List<Integer>>();

// loop through the first row of arrays and fill the list
// long form of loop statement 
List<Integer> row = new ArrayList<Integer>();
row.add(array1_str[0][0]); 
row.add(array1_str[0][1]);
row.add(array2_str[0][0]); 
row.add(array2_str[0][1]); // ...
finalArray.add(row);

System.out.println(Arrays.deepToString(finalArray.toArray()));
List finalArray=new ArrayList();
//循环遍历数组的第一行并填充列表
//循环语句的长形式
列表行=新的ArrayList();
添加(array1_str[0][0]);
新增(array1_str[0][1]);
新增(array2_str[0][0]);
添加(array2_str[0][1]);/。。。
finalArray.add(行);
System.out.println(Arrays.deepToString(finalArray.toArray());

一如既往:向我们展示您迄今为止的尝试。更新了我的问题@dave@Hiren您的代码现在给出了什么结果?我希望所有2D数组的第一行都应该成为最终2D数组的第一行,然后所有2D数组的第二行应该成为最终2D数组的第二行。但在我的解决方案中。第二个2D阵列的第一行将成为最终阵列的第二行@“有没有解决问题的一般方法?”我想,海伦明白了这是家庭作业的重点。