Buongiorno a tutti, vorrei porvi una domanda riguardo un metodo da applicare a questo tipo di array:
public static int[][] mistero(int[][] a) {
int[][] ris = new int[a.length][];
for (int i=0; i<a.length; i++)
ris[i] = a[a.length-1-i];
return ris;
}
public static void main(String[] args) {
int[][] v = {
{ 1, 2, 3 },
{ 4, 5, 6 }
};
int[][] c = mistero(v);
c[0][2]++;
System.out.println(v[1][2]+" " c[0][2]);
}
Secondo ciò che ho capito, l'array [][]c che viene generato dal metodo mistero, è un array la cui riga 0 è uguale alla riga 1 di [][]v e la riga 1 è uguale alla riga 0 di [][]v. Dopodiché tramite c[0][2]++ aumentiamo di uno il valore di quell'intero (che quindi diventa 7).
Ciò che non capisco è come mai si modifica anche il valore di v[1][2] che dovrebbe essere 6, mentre il metodo stampa 7 7 .
A cosa è dovuta questa modifica ?
Grazie a tutti