Инициализировать 2dim массив в java методом - PullRequest
0 голосов
/ 30 января 2020

У меня есть метод "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
}

Как я могу вызвать метод init из create? Спасибо

1 Ответ

0 голосов
/ 30 января 2020

Вам нужно инициализировать массив вне вызова функции, а затем заполнить массив init. Java является передачей по ссылке (i sh), что означает, что, хотя вы можете изменить содержимое передаваемого массива, и вызывающая сторона увидит эти изменения, вы не можете изменить место, на которое указывает переданная переменная. Это ограничение 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, когда создаются массивы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...