嵌套for循环2D数组初始化不起作用(java)

时间:2017-06-01 05:45:27

标签: java arrays for-loop multidimensional-array

我试图简单地创建一个返回2D数组的方法,该数组具有基于给定模式输入的所有值。 Eclipse说我的代码没有任何错误,但是当我去运行时,我得到了响应" [[I @ 2a139a55"。我用Google搜索并了解它的内容,但我仍然不知道如何修复我的代码。

async

3 个答案:

答案 0 :(得分:5)

尝试

System.out.println(Arrays.toString(array));

或者您的数组是否包含其他数组作为元素

System.out.println(Arrays.deepToString(array))

答案 1 :(得分:2)

您必须打印2d数组。

为此你不能简单地做System.out.println()

代码应该类似于以下内容:

public class Transpose {

    public static int[][] createPatterned2DArray(int row,int column){
        int width = column;
        int height = row;
        int[][] array = new int[height][width];

        for (int i = 0; i < height; i++)
        {
            for (int j = 0; j < width; j++)
            {
                array[i][j] = i + j + (width * i);

            }
        }

        return array;

    }

    public static void main(String[] args) {


        int arr[][] = createPatterned2DArray(3,5);

        for (int i = 0; i < arr.length; i++){
            for(int j = 0; j < arr[i].length; j++){
                System.out.println(arr[i][j]);
            }
        }


    }

}

答案 2 :(得分:0)

System.out.print(array)语句不会为您提供数组元素值的预期输出:

实际上,当你打印数组时,你会得到这样奇怪的输出:

[[I@15db9742

此输出的原因:

  

数组被视为对象,因此默认结果为   Object#toString()将用作字符串表示。

实现您的目标:

  • 使用Arrays.toString()方法打印简单数组或一维数组。
  • 使用Arrays.deepToString()方法打印嵌套数组。
  • 或者您可以使用循环传统方式打印数组。

在您打印2D阵列的情况下,您可以使用:

System.out.print(Arrays.deepToString(createPatterned2DArray(3,5)));

查看此answer以获取更多信息。