在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阵列的第一行将成为最终阵列的第二行@“有没有解决问题的一般方法?”我想,海伦明白了这是家庭作业的重点。