2D数组未正确声明

时间:2017-02-05 08:53:52

标签: java arrays multidimensional-array

我试图从.ppm文件中获取数据并在图像上添加过滤器。 出于某种原因,当我打印图像的高度和宽度时,它会正确返回值,但是当我将数据放入2D数组时,它返回的高度与宽度相同,即使它不是。这是相关代码的片段。它与我初始化Color 2D数组有什么关系吗?

    Color[][] totalData = null;
    int x = 0;
    int y = 0;

    while (fileScanner.hasNext()) {
        // Handles comments
        String line = fileScanner.nextLine();
        if ((line.startsWith("#"))) {
            continue;
        }

        width = fileScanner.nextInt();
        height = fileScanner.nextInt();
        System.out.println(width); //4
        System.out.println(height); //3

        //Skips the Max color value
        fileScanner.next();

        totalData = new Color[height][width];
        System.out.println(totalData[0].length); //4
        System.out.println(totalData[1].length); //4

1 个答案:

答案 0 :(得分:5)

您正在打印数组第一行和第二行的长度,两者都是4,因为这是2D数组的宽度。

要查看高度和宽度(不相同),您应该打印:

System.out.println(totalData.length); // the number of rows (3)
System.out.println(totalData[0].length); // the length of each row (4)