Gostaria de alguém que pudesse sanar minhas dúvidas em um conceito de array tridimensional.
Eu não estou entendendo por que matrix[i][j][k] está sendo considerado como um número e dessa forma, sendo possível somá-lo, dividí-lo por 2, etc. O array matrix[i][j][k] não são 3 números? Por
Não, i, j e k são os índices onde o valor se encontra.
Um array tridimensional nada mais é do que um array de arrays bidimensionais
E um array bidimensional é um array de arrays unidimensionais
Dessa forma, no seu exemplo a variável i corresponde ao índice do array bidimensional que está dentro do array tridimensional
A variável j corresponde ao indice do array unidimensional dentro do array bidimensional acessado por i
A variável k corresponde ao elemento na posição K do array unidimensional acessado por j.
Então, quando você faz :
int valor = array3d[i][j][k];
É o mesmo que fazer:
int[][] array2d = array3d[i];
int[] array = array2d[j];
int valor = array[k];
Imagine o seguinte array tridimensional:
int[][][] array3d = new int[][][] {
new int[][] {
new int[]{1, 2, 3, 4, 5},
new int[]{6, 7, 8, 9, 10},
},
new int[][] {
new int[]{11, 12, 13, 14, 15},
new int[]{16, 17, 18, 19, 20},
},
};
Isso é exatamente o mesmo que escrever:
int[] array_1 = new int[]{1, 2, 3, 4, 5},
int[] array_2 = new int[]{6, 7, 8, 9, 10},
int[] array_3 = new int[]{11, 12, 13, 14, 15},
int[] array_4 = new int[]{16, 17, 18, 19, 20},
int[][] array2d_1 = new int[][] { array_1, array_2 };
int[][] array2d_2 = new int[][] { array_3, array_4 };
int[][][] array3d = new int[][][] { array2d_1, array2d_2 };
No exemplo acima:
array3d[0][0][0] contém o valor 1
array3d[0][0][1] contém o valor 2
array3d[0][1][0] contém o valor 6
array3d[0][1][1] contém o valor 7
array3d[1][0][0] contém o valor 11
array3d[1][0][1] contém o valor 12
array3d[1][1][0] contém o valor 16
array3d[1][1][0] contém o valor 17