java - java中通过方法初始化2dim数组

标签 java arrays eclipse methods arguments

我有一个方法“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方法?谢谢

最佳答案

您需要在函数调用之外初始化数组,然后使用 init 填充该数组。 Java 是按引用传递的,这意味着虽然您可以更改传入的数组的内容并且调用者将看到这些更改,但您无法更改传递的变量指向的位置。这是 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 初始化为 0。

关于java - java中通过方法初始化2dim数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59977594/

相关文章:

java - 在 Eclipse 中安装 Android Developer Tools 时出错

java - 您能为 Java Web 应用程序编码推荐一个标准的、很酷的环境吗?

java - Spark-通过命令行提交不强制执行 UTF-8 编码

javascript - 在数组中查找具有特定值的对象

java - HTTPS (SSL) 请求在没有库的情况下从 keystore 读取证书

c - C语言的机票预订系统

arrays - 如何在Scala View 页面中迭代JsArray(值映射不是play.api.libs.json.JsArray的成员)

java - 如何为包的所有类中的所有方法替换 catch block 中的现有代码?

java - 如何在 intellij 中搜索枚举文件类型

JAVA初学者: IF statement not working as intended - body of code not being called when it should?