Назначить меньший 2d массив большему 2d массиву по ссылке - PullRequest
0 голосов
/ 26 января 2019

В java не хранятся ли значения массива последовательно в памяти?Есть ли способ присвоить адрес памяти массива другой переменной?

Вот код, над которым я работаю:

public static void main(String[] args){

    String[][] board = new String[15][27];
    String[][] X     = new String[5][9];
    String[][] Y     = new String[5][9];

    X[1][3] = "X";
    X[1][5] = "X";
    X[2][4] = "X";
    X[3][3] = "X";
    X[3][5] = "X";

    Y[1][3] = "O";
    Y[1][4] = "O";
    Y[1][5] = "O";
    Y[2][3] = "O";
    Y[2][5] = "O";
    Y[3][3] = "O";
    Y[3][4] = "O";
    Y[3][5] = "O";

    board = X;

    System.out.println("\u000C");

    for (int i = 0;i < 15;i++){
        for (int j = 0;j < 27; j++){
            System.out.print(board[i][j]);
        }
        System.out.println();
    }


}

Очевидно, строка

board = x

не делает 'т работа.Но есть ли способ присвоить адрес меньшего массива какой-либо части большего массива или мы должны сделать этот элемент элементом?

1 Ответ

0 голосов
/ 26 января 2019

Хотя вы МОЖЕТЕ назначить адрес памяти другой переменной, это будет просто еще одна ссылка на тот же массив.Если вы хотите переместить данные в больший массив, вы должны скопировать их.

for (int i = 0; i < 5; i++){
    for (int j = 0; j < 9; j++){
        board[i][j] = X[i][j];
    }
}
...