将2d数组读入三角形

时间:2012-10-09 13:39:19

标签: java arrays

我想将以下内容读入2d锯齿状数组:

3
7 4
2 4 6
8 5 9 3

我需要在每个输入上增加列大小。我不确定该怎么做。

我的代码如下:

int col = 1;
int[][] values = new int[rows][col];
for(int i = 0; i < values.length; i++){
  for(int j = 1; j < col; j++)
  {
     values[i][j] = kb.nextInt();
     col++;
  }
}

2 个答案:

答案 0 :(得分:5)

这应该这样做。

int[][] values = new int[rows][];
for(int i = 0; i < values.length; i++)
{
    values[i] = new int[i+1];

    for(int j = 0; j < values[i].length; j++)
    {
        values[i][j] = kb.nextInt();
    }
}

基本上,您首先要定义2d数组应该有多少行。

for循环中,为每行及其长度定义1d数组。

答案 1 :(得分:1)

样品

// don't fix the second dimension
int[][] values = new int[rows][];

for(i = 0; i < rows;i ++){
    //column size increases for every line input
    values[i] = new int[i+1];

    for(j = 0; j < values[i].length; j++) {
         values[i][j] = kb.nextInt();
    }
}

在Java中,数组不必是严格的矩形。变量valuesrows - 对int数组的引用的元素数组。这里,values[0]是1元素int数组,值[1]是2元素int数组等。