English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Un array a spina di pesce è un array di array. Un array a spina di pesce memorizza array invece di valori letterali. Ad esempio, un array bidimensionale è un array unidimensionale di elementi identici, ma un array a spina di pesce, ogni array sottostante ha un numero diverso di elementi.
L'array a spina di pesce viene inizializzato con due parentesi quadre [ [] ]. La prima parentesi quadra specifica la dimensione dell'array, la seconda parentesi quadra specifica la dimensione dell'array che verrà memorizzato.
Esempio di dichiarazione di array a spina di pesce.
int[][] jArray1 = new int[2][]; // Può contenere due array unidimensionali int[][,] jArray2 = new int[3][,]; // Può contenere tre array bidimensionali
Nell'esempio sopra, jArray1 può contenere al massimo due array unidimensionali. jArray2 può contenere al massimo tre array bidimensionali, l'array [ , ] specifica l'array bidimensionale.
int[][] jArray = new int[2][]; jArray[0] = new int[3]{1, 2, 3}; jArray[1] = new int[4]{4, 5, 6, 7};
Puoi anche inizializzare un array a punteggio alla dichiarazione, come segue.
int[][] jArray = new int[2][]{ new int[3]{1, 2, 3}, new int[4]{4, 5, 6, 7} }; jArray[0][0]; // restituisce 1 jArray[0][1]; // restituisce 2 jArray[0][2]; // restituisce 3 jArray[1][0]; // restituisce 4 jArray[1][1]; // restituisce 5 jArray[1][2]; // restituisce 6 jArray[1][3]; // restituisce 7
Puoi accedere a un array a punteggio utilizzando due cicli for, come segue.
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]); }
Il seguente array a punteggio memorizza array bidimensionali, dove il secondo parentesi [ ] rappresenta un array bidimensionale.
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]; // restituisce 4 jArray[1][1, 0]; // restituisce 9 jArray[1][1, 1]; // restituisce 10
Se aggiungi un altro parentesi, allora è un array di array.
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
Negli esempi di array intercalati sopra, tre parentesi quadre[][][] rappresentano l'array dell'array dell'array. Pertanto, intJaggedArray conterrà due elementi, il che significa due array. Ogni array contiene ancora un array (uno uno). intJaggedArray[0][0][0] punta al primo elemento dell'array interno. intJaggedArray[1][0][2] punta al terzo elemento dell'array interno. La seguente figura illustra questo.