- - Opetusohjelma: Moniulotteinen taulukko Java-ohjelmassa

Opetusohjelma: Moniulotteinen taulukko Java-ohjelmassa

Java, kuten useimmat muutkin tehokkaat ohjelmointikielet, tukee moniulotteisia matriiseja, kuten 2-ulotteisia ja 3-ulotteisia matriiseja. Aikaisemmin olemme keskustelleet yhteistyöstä yksiulotteinen taulukko Java: ssa. Keskustelemme tässä opetusohjelmassa noin 2-ulotteisesta ja 3-ulotteisesta taulukosta. Samoja periaatteita sovelletaan myös korkeamman ulottuvuuden matriiseihin.

2-ulotteinen taulukko Java

2-ulotteinen toteutetaan kahdella tavallataulukot. Monet kielet varaavat muistimohkon, joka on riittävän suuri, jotta kaikki koko, suorakulmainen, taulukon elementit (rivien lukumäärä sarakkeiden lukumäärä ja elementin koko) voidaan pitää kaikissa osissa. Java ei tee tätä. Sen sijaan Java rakentaa moniulotteisia matriiseja monista yhden ulottuvuuden matriiseista, ns. ”Taulukkojen matriisit”.

Kaksiulotteiset taulukot määritellään taulukkoksiryhmiä ”. Koska taulukotyyppi on ensiluokkainen Java-tyyppi, meillä voi olla joukko sisääntuloja, joukko merkkijonoja tai joukko esineitä. Esimerkiksi joukko inettejä on tyyppiä int []. Samoin meillä voi olla int [] [], joka edustaa ”joukkoa ints-ryhmiä”. Tällaisen taulukon sanotaan olevan kaksiulotteinen taulukko.

Seuraava komento:

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

julistaa tyypin muuttujan, twodimArrayint [] [], ja se alustaa kyseisen muuttujan viittaamaan hiljattain luotuun objektiin. Tämä objekti on joukko sisääntuloita. Tässä merkintä int [3] [4] osoittaa, että taulukossa twodimArray on 3 intin taulukkoa ja että jokaisessa niistä taulukossa on 4 inttia.

Tästä on muutama mielenkiintoinen seuraus: Rivit voivat olla erikokoisia. Jokainen rivi on myös objekti (taulukko), jota voidaan käyttää itsenäisesti.

ilmoitus

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

jako

Kuten kaikki taulukot, uutta avainsanaa on käytettävä muistin varaamiseksi matriisille. Esimerkiksi,

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

Tai:

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

Tai:

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

Tämä allokoi int-taulukon, jossa on 3 riviä ja 4 saraketta. Kuten kaikilla objekteillakin, arvot alustetaan nollaan (toisin kuin paikalliset muuttujat, jotka ovat käynnistämättä).

Tämä osoittaa tosiasiallisesti 5 kohdetta: yhden ulotteisen ryhmän, jossa on 4 elementtiä jokaiselle riville, ja yhden ulotteen ryhmän, jossa on 3 elementtiä, jokaisen elementin osoittaessa sopivaan riviryhmään.

käsittely

Usein 2-ulotteisia taulukkoja käsitellään silmukoiden sisäkkäin. Huomaa seuraavassa esimerkissä, kuinka rivejä käsitellään erillisinä objekteina.

Java-ohjelma

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("");
}
}
}

ulostulo

koodi Java-2-ulotteiselle ryhmälle

Kolmiulotteinen taulukko Java-sovelluksessa

Java-ohjelma

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]);
}
}

ulostulo

3-ulotteisen taulukon koodi Java: lla

Koodin ja tulosteen selitys

Moniulotteinen taulukko prosessoidaan läpisisäkkäiset silmukat. N-ulotteiseen taulukkoon tarvitaan n lukumäärä sisäkkäisiä silmukoita. Kuten sanoin taulukon jokaisen sijainnin oletusarvo on '0'. Se on todistettu kolmiulotteisen taulukon tuloksesta.

Katso täältä lisää hyödyllisiä opetusohjelmia ja lopullisia ohjeita Java-ohjelmoinnista.

Kommentit