2D数组未正确声明

Har*_*man 2 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
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 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)
Run Code Online (Sandbox Code Playgroud)