具有不同行长度的数组

时间:2015-10-03 19:39:57

标签: java multidimensional-array

我必须在java中输出Julian日历。我每个月都打印出来,但是我不确定如何确定每个月对应的行长度。例如,2月,4月,6月,9月和11月没有31天。到目前为止,这是我的代码:

{{1}}

1 个答案:

答案 0 :(得分:5)

我们可以创建一个矩阵,每行的列数不同(称为锯齿状矩阵),如下所示:

int[][] months = new int[12][];

months[0] = new int[31]; // January
months[1] = new int[28]; // February, assuming a non-leap year
months[2] = new int[31]; // March
// and so on...

现在,每当我们需要迭代它时,请记住考虑每行的长度不同:

int dayNum365 = 1;
for (int month = 0; month < months.length; month++) {
    for (int day = 0; day < months[month].length; day++) {
        months[month][day] = dayNum365;
        dayNum365++;
    }
}

上述所有工作都是因为2D矩阵只是一个数组数组,在使用Java中的矩阵时要牢记这一点。