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

嵌套循环2D数组初始化不工作(java),java,arrays,for-loop,multidimensional-array,Java,Arrays,For Loop,Multidimensional Array,我试图简单地创建一个方法,该方法返回一个2D数组,该数组包含根据给定模式输入的所有值。Eclipse说我的代码没有任何错误,但当我开始运行时,我得到了响应”[[I@2a139a55我在谷歌上搜索了一下,了解了它的内容,但我仍然不知道如何修复我的代码 public class Transpose { public static int[][] createPatterned2DArray(int row,int column){ int width = column; int h

我试图简单地创建一个方法,该方法返回一个2D数组,该数组包含根据给定模式输入的所有值。Eclipse说我的代码没有任何错误,但当我开始运行时,我得到了响应”[[I@2a139a55我在谷歌上搜索了一下,了解了它的内容,但我仍然不知道如何修复我的代码

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) {


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


}

}
公共类转置{
公共静态int[][]createPatterned2DArray(int行,int列){
int宽度=列;
整数高度=行;
int[][]数组=新的int[高度][宽度];
对于(int i=0;i
您必须打印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]);
            }
        }


    }

}
公共类转置{
公共静态int[][]createPatterned2DArray(int行,int列){
int宽度=列;
整数高度=行;
int[][]数组=新的int[高度][宽度];
对于(int i=0;i
试试看

System.out.println(Arrays.toString(array));
或者如果您的数组包含其他数组作为元素

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

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

实际上,在打印阵列时,您会得到如下奇怪的输出:

[[I@15db9742
产生此输出的原因:

数组被视为对象,因此
Object#toString()
将用作字符串表示形式

要实现您的目标:

  • 使用
    array.toString()
    方法打印简单数组或一维数组
  • 使用
    Arrays.deepToString()
    方法打印嵌套数组
  • 也可以使用传统的循环方式打印阵列
在您的情况下,要打印二维阵列,您只需使用:

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

检查此项了解更多信息。

使用
数组。deepToString
输出正确,因为
数组
对象
。这里它使用
toString
的默认
对象
实现,即打印
type@hascode
对象的
。您可以对其进行迭代或者使用一些api直接打印它。