English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Les tableaux en dents de scie sont des tableaux de tableaux. Les tableaux en dents de scie stockent des tableaux plutôt que des valeurs littérales. Par exemple, un tableau bidimensionnel est un tableau unidimensionnel composé de plusieurs éléments identiques, mais un tableau en dents de scie, chaque tableau suivant a un nombre différent d'éléments.
Les tableaux en dents de scie sont initialisés avec deux crochets [ et ]. Le premier crochet spécifie la taille de l'array, et le deuxième crochet spécifie la taille des tableaux à stocker.
Les exemples suivants déclarent des tableaux en dents de scie.
int[][] jArray1 = new int[2]; // peut contenir jusqu'à deux tableaux unidimensionnels int[][,] jArray2 = new int[3][,]; // peut contenir jusqu'à trois tableaux bidimensionnels
Dans l'exemple ci-dessus, jArray1Il peut stocker jusqu'à deux tableaux unidimensionnels. jArray2Il peut stocker jusqu'à trois tableaux bidimensionnels, où les crochets [ et ] spécifient le tableau bidimensionnel.
int[][] jArray = new int[2]; jArray[0] = new int[3]{1, 2, 3}; jArray[1] = new int[4]{4, 5, 6, 7 };
Vous pouvez également initialiser un tableau en dents de scie lors de la déclaration, comme suit.
int[][] jArray = new int[2]{ new int[3]{1, 2, 3}, new int[4]{4, 5, 6, 7} }; jArray[0][0]; //Retour1 jArray[0][1]; //Retour2 jArray[0][2]; //Retour3 jArray[1][0]; //Retour4 jArray[1][1]; //Retour5 jArray[1][2]; //Retour6 jArray[1][3]; //Retour7
Vous pouvez itérer sur un tableau en dents de scie à l'aide de deux boucles for, comme suit.
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]); }
Le tableau en dents de scie suivant stocke des tableaux bidimensionnels, où le deuxième crochet [ et ] représente un tableau bidimensionnel.
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]; //Retour4 jArray[1][1, 0]; //Retour9 jArray[1][1, 1]; //Retour10
Si vous ajoutez un autre crochet, alors c'est un tableau de tableaux.
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][1][1]); // 5 Console.WriteLine(intJaggedArray[1][0][2]); // 9
Dans l'exemple de tableau imbriqué ci-dessus, les trois crochets[][][] représentent des tableaux de tableaux. Par conséquent, intJaggedArray contiendra deux éléments, ce qui signifie deux tableaux. Chaque tableau contient également un tableau (unidimensionnel). intJaggedArray[0][0][0] pointe au premier élément de la première array interne. intJaggedArray[1][0][2]] Pointe le troisième élément de la deuxième array interne. La figure suivante explique cela.