2d数组,其单元格可以在索引处保存多于1个值

时间:2014-12-09 12:15:58

标签: java arrays matrix

我需要生成一个包含4行和4列的矩阵。事情是一些细胞需要持有多个值。我不确定如何做到这一点。我应该创建另一个数组,所以array [] value = {1,13};然后将索引放在我的2d数组中吗?

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

1 个答案:

答案 0 :(得分:2)

您可以使用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]]]