我在最终2D arrays
中附加2D array
列表时遇到问题。
问题陈述:
如果我有2 2D arrays
:
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}};
我尝试了以下方法来实现,但我没有得到预期的结果:
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;
}
}
我怎样才能实现这种追加?
答案 0 :(得分:0)
您可以在java.util中使用2D ArrayList和List。你可以循环遍历2d数组,填充列表将它附加到数组列表,并为第二行等做。
您可以尝试:
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()));