【问题标题】:Initialize 2dim array in java by method通过方法在java中初始化2dim数组
【发布时间】:2020-05-15 13:42:17
【问题描述】:

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

【问题讨论】:

    标签: java arrays eclipse methods arguments


    【解决方案1】:

    您需要在函数调用之外初始化数组,然后用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 会在创建数组时自动将 ints 初始化为 0。

    【讨论】:

    • 太棒了!谢谢你。在你的代码中,我在 Arr ..... int Arr[][] = new int[13][13] 之后添加了 2 [];
    • 不错,忘了包含数组声明。
    猜你喜欢
    • 1970-01-01
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多