Member 13618455 Ответов: 1

Как мне исправить этот 2-D массив?


public int[][] flipPhoto(int[][] picture)
{
int flip[][] = картинка;
int k = 0;
for (int i = 0; i < picture.длина; i++)
{
for (int j = picture[i].length -1 ; j >= 0; j--)
{
флип[я][к]=с картинками[я][Дж];
к++;
}
k = 0;
}

обратный флип;
}

Что я уже пробовал:

Я пробовал inter изменять переменные i и k, но это не работает.
Вот что я хочу распечатать:
[[200, 100, 200], [100, 200, 100], [100, 250, 150]]

Это то, что печатает:
[[200, 100, 200], [100, 200, 100], [100, 250, 100]]

так близко, что я не знаю, что делать.

1 Ответов

Рейтинг:
2

OriginalGriff

Вы же понимаете, что этот код:

int flip[][] = picture;
Копирует ссылку на исходный массив, а не копирует сам массив?
Так что когда вы это сделаете:
flip[i][k]=picture[i][j];
Он изменяет flip и picture - элемент в picture[i][k] также перезаписывается.
Попробовать это:
int[] ar = new int[3];
    ar[0] = 0;
    ar[1] = 1;
    ar[2] = 2;
    int[] ar2 = ar;
    ar2[1] = 7;
    System.out.print(ar[0]);
    System.out.print(ar[1]);
    System.out.print(ar[2]);
И вы получите "072", потому что ar2-это копия ссылки, а не копия элементов.