首页 > 解决方案 > 通过方法在java中初始化2dim数组

问题描述

我有一个必须初始化数组的方法“init”。

public void init(int Arr[][]) {

        int Arr=new int[13][13];

        for(int i=0;i<13;i++) {
            for(int j=0;j<13;j++)
            {

            Arr[i][j]=0;

            }

        }

    }

然后有一个方法“create”,它必须使用一个初始化的数组(通过 init)

public void create() {

//here i must call the init(int A[][]) ,for having A initialized,but it's not working
}

如何从 create 调用 init 方法?谢谢

标签: javaarrayseclipsemethodsarguments

解决方案


您需要在函数调用之外初始化数组,然后使用init. Java 是按引用传递(ish),这意味着虽然您可以更改传入数组的内容并且调用者将看到这些更改,但您无法更改传递的变量指向的位置。这是 Java 限制。尝试这样的事情:

public void init(int Arr[][]) {

        for(int i=0;i<13;i++) {
            for(int j=0;j<13;j++)
            {

            Arr[i][j]=0;

            }

        }

    }

public void create() {
    int Arr[][] = new int[13][13];
    init(Arr);
}

编辑:顺便说一句,您尝试做的事情是多余的,Java 会int在创建数组时自动将 s 初始化为 0。


推荐阅读