- - Vadovėlis: daugiamatis masyvas „Java“

Vadovėlis: daugiamatis masyvas „Java“

„Java“, kaip ir dauguma kitų galingų programavimo kalbų, palaiko daugiamačius masyvus, tokius kaip 2 ir 3 dimensijų masyvai. Anksčiau diskutavome apie darbą su vienos dimensijos masyvai „Java“. Šiame vadove aptarsime apie 2 ir 3 dimensijų masyvus. Tie patys principai taikomi ir aukštesnių matmenų matricoms.

2 dimensijų masyvas „Java“

Yra du būdai, kaip įgyvendinti dvimatįmasyvai. Daugelis kalbų rezervuoja pakankamai didelę atminties dalį, kad joje būtų visi pilno, stačiakampio formos masyvo elementai (eilučių skaičius padaugintas iš stulpelių skaičiaus ir elemento dydžio). „Java“ to nedaro. Vietoj to, „Java“ sukuria daugialypius masyvus iš daugelio vieno matmens masyvų, vadinamųjų „masyvų masyvų“ metodo.

Dvimatės matricos yra apibrėžtos kaip „masyvasmasyvų “. Kadangi masyvo tipas yra pirmos klasės „Java“ tipas, mes galime turėti intarpų masyvą, stygų masyvą arba objektų masyvą. Pvz., Intarpų masyvo tipas bus int []. Panašiai galime turėti int [] [], kuris žymi „intarpų masyvą“. Sakoma, kad toks masyvas yra dvimatis masyvas.

Ši komanda:

int[][] twodimArray = new int[3][4];

deklaruoja kintamąjį, „twodimArray“, tipąint [] [], ir jis inicijuoja tą kintamąjį, kad nurodytų naujai sukurtą objektą. Šis objektas yra intarpų masyvas. Čia žymėjimas int [3] [4] rodo, kad masyve „twodimArray“ yra 3 intadų masyvai ir kad kiekviename iš šių masyvų yra 4 intai.

Yra keletas įdomių to pasekmių: Eilutės gali būti skirtingo dydžio. Taip pat kiekviena eilutė yra objektas (masyvas), kuris gali būti naudojamas savarankiškai.

Deklaracija

int[][] a1; // Declares, but doesn't allocate, 2-dim array.

Paskirstymas

Kaip ir visuose masyvuose, naujasis raktinis žodis turi būti naudojamas paskirstyti masyvo atmintį. Pavyzdžiui,

int[][] a1 = new int[3][4];

Arba:

int[][] a1;
a1 = new int[3][4];

Arba:

double[][] ID3 = {  {1.0, 0.0, 0.0},  {0.0, 1.0, 0.0}, {0.0, 0.0, 1.0}};

Tai paskirsto vidinį masyvą su 3 eilutėmis ir 4 stulpeliais. Kaip ir visų objektų, reikšmės yra inicializuotos iki nulio (skirtingai nuo vietinių kintamųjų, kurie yra neinicializuoti).

Tai iš tikrųjų paskirsto 5 objektus: vienmatį 4 elementų masyvą kiekvienai eilutei ir vienmatį 3 elementų masyvą, kiekvienas elementas nukreipdamas į atitinkamą eilutės masyvą.

Apdorojimas

Dažnai 2 dimensijų matricos yra apdorojamos su įdėtomis kilpomis. Šiame pavyzdyje atkreipkite dėmesį, kaip eilutės tvarkomos kaip atskiri objektai.

„Java“ programa

public class TwoDimArrayDemo{
public static void main(String[] args) {
int[][] twoDimArray = new int[3][4];
for (int i=0; i<twoDimArray.length; i++) {
for (int j=0; j<twoDimArray[i].length; j++) {
twoDimArray[i][j] = i;
System.out.print(" " + twoDimArray[i][j]);
}
System.out.println("");
}
}
}

Išėjimas

„Java“ 2 matmenų masyvo kodas

3 matmenų masyvas „Java“

„Java“ programa

class Array3D{
public static void main(String args[]){
int[][][] a2 = new int[2][2][4];
for (int i = 0; i < a2.length; i++)
for (int j = 0; j < a2[i].length; j++)
for (int k = 0; k < a2[i][j].length; k++)
System.out.println("a2[" + i + "][" + j + "][" + k + "] = "+ a2[i][j][k]);
}
}

Išėjimas

3 matmenų masyvo kodas „Java“

Kodo ir išvesties paaiškinimas

Daugiamačio masyvo apdorojimas atliekamasįdėtos kilpos. N-matmenų masyvui jums reikia n įdėtų kilpų skaičiaus. Kaip sakiau, kiekvienos masyvo pozicijos numatytoji vertė yra „0“. Tai įrodyta išvedant trimatį masyvą.

Patikrinkite naudingesnius vadovus ir aiškias „Java“ programavimo gaires čia.

Komentarai