English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El array en dientes es un array de arrays. El array en dientes almacena arrays en lugar de valores literales. Por ejemplo, una matriz bidimensional es un array unidimensional de elementos idénticos, pero el array en dientes, cada uno de los arrays tiene un número diferente de elementos.
El array en dientes se inicializa con dos corchetes [ ]. El primer corchete especifica el tamaño del array, el segundo corchete especifica el tamaño del array que se almacenará.
El siguiente ejemplo declara un array en dientes.
int[][] jArray1 = new int[2]; // puede contener dos arrays unidimensionales int[][,] jArray2 = new int[3][,]; // puede contener tres matrices bidimensionales
En el ejemplo anterior, jArray1Se pueden almacenar hasta dos arrays unidimensionales. jArray2Se pueden almacenar hasta tres matrices bidimensionales, el array [ ] especifica la matriz bidimensional.
int[][] jArray = new int[2]; jArray[0] = new int[3]{1, 2, 3}; jArray[1}= new int[4]{4, 5, 6, 7 };
También puedes inicializar el array en dientes en la declaración, como se muestra a continuación.
int[][] jArray = new int[2]{ new int[3]{1, 2, 3}, new int[4]{4, 5, 6, 7} }; jArray[0][0]; //Retorno1 jArray[0][1]; //Retorno2 jArray[0][2]; //Retorno3 jArray[1][0]; //Retorno4 jArray[11]; //Retorno5 jArray[12]; //Retorno6 jArray[13]; //Retorno7
Puedes usar dos bucles for para acceder a un array en dientes, como se muestra a continuación.
int[][] jArray = new int[2]{ new int[3]{1, 2, 3}, new int[4]{4, 5, 6, 7} }; for(int i=0; i<jArray.Length; i++) { for(int j=0; j < (jArray[i]).Length; j++) Console.WriteLine(jArray[i][j]); }
La siguiente matriz de arreglos en dientes almacena matrices bidimensionales, donde el segundo paréntesis [ ] representa una matriz bidimensional.
int[][,] jArray = new int[2][,]; jArray[0] = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }; jArray[1}= new int[2, 2] { { 7, 8 }, { 9, 10 }; jArray[0][1, 1]; //Retorno4 jArray[11, 0]; //Retorno9 jArray[11, 1]; //Retorno10
Si añades otro paréntesis, entonces es un array de arrays.
int[][][] intJaggedArray = new int[2]] { new int[2}][] { new int[3] { 1, 2, 3}, new int[2] { 4, 5} }, new int[1}][] { new int[3] { 7, 8, 9} } }; Console.WriteLine(intJaggedArray[0][0][0]); // 1 Console.WriteLine(intJaggedArray[0][11]); // 5 Console.WriteLine(intJaggedArray[1][0][2]); // 9
En el ejemplo de matriz entrelazada anterior, tres corchetes[][][] representan una matriz de matrices. Por lo tanto, intJaggedArray contendrá dos elementos, lo que significa dos matrices. Ahora, cada matriz también contiene una matriz (unidimensional). intJaggedArray[0][0][0] apunta al primer elemento de la primera submatriz. intJaggedArray[1][0][2]] Señala el tercer elemento de la segunda submatriz. La siguiente imagen lo ilustra.