我需要生成一个 4 行 4 列的矩阵。问题是有些单元格需要保存多个值。我不知道该怎么做。我应该创建另一个数组,所以 array [] value = {1,13};
然后将其索引放入我的二维数组中?
Array [][] matrix = new Array [4][4];
matrix [][] = {{ a, b, c, d},
{{1,13}, 10, 6, 8},
{{2,14}, 11, 7, 9},
{{5,13,15}, {12,10}, 4, 4} };
最佳答案
您可以改用 3D 数组。
我不确定您是否在数组中存储对象或基元,但让我们假设基元(它并没有真正产生区别):
int[][][] matrix = new int [4][4][];
matrix[1][1] = new int [] {10};
matrix[2][0] = new int [] {2,14};
matrix[3][0] = new int [] {5,13,15};
或者你可以直接初始化它:
int [][][] mat =
{{{0}, {0}, {0}, {0}},
{{1,13}, {10}, {6}, {8}},
{{2,14}, {11}, {7}, {9}},
{{5,13,15}, {12,10}, {4}, {4}}};
System.out.println (Arrays.deepToString (mat));
请注意,我将单个值更改为长度为 1 的数组,并将第一行的字符更改为 {0},因为这是一个 int
数组。
输出(为了便于阅读,我添加了一些换行符和空格):
[[[0], [0], [0], [0]],
[[1, 13], [10], [6], [8]],
[[2, 14], [11], [7], [9]],
[[5, 13, 15], [12, 10], [4], [4]]]
关于java - 二维数组,其单元格可以在索引处保存超过 1 个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27378745/