Moniulotteinen tieto
Aiemmat esimerkkimme ovat käsitelleet yksiulotteisia taulukoita, missä indeksi kertoo sijainnin yhdessä ulottuvuudessa. Taulukon voi luoda myös useampiulotteisena, jolloin taulukossa olevaa tietoa voi tarkastella useamman indeksin avulla. Tämä on kätevää esimerkiksi silloin, jos tieto on useampiulotteista kuten esimerkiksi koordinaatistossa.
Kaksiulotteinen taulukko, jossa on kaksi riviä ja kolme saraketta, luodaan seuraavasti:
int rivit = 2;
int sarakkeet = 3;
int[][] kaksiulotteinenTaulukko = new int[rivit][sarakkeet];
Yllä luomme taulukon, jonka jokainen rivi viittaa taulukkoon, jossa on tietty määrä sarakkeita. Kaksiulotteisen taulukon läpikäynti onnistuu kahden sisäkkäisen for-toistolauseen avulla seuraavasti:
int rivit = 2;
int sarakkeet = 3;
int[][] kaksiulotteinenTaulukko = new int[rivit][sarakkeet];
System.out.println("rivi, sarake, arvo");
for (int rivi = 0; rivi < kaksiulotteinenTaulukko.length; rivi++) {
for (int sarake = 0; sarake < kaksiulotteinenTaulukko[rivi].length; sarake++) {
int arvo = kaksiulotteinenTaulukko[rivi][sarake];
System.out.println("" + rivi + ", " + sarake + ", " + arvo);
}
}
Ylläolevan ohjelman tulostus on seuraava.
rivi, sarake, arvo 0, 0, 0 0, 1, 0 0, 2, 0 1, 0, 0 1, 1, 0 1, 2, 0
Yllä huomataan että int
-tyyppisten muuttujien oletusarvo on 0.
Voimme muuttaa taulukon arvoja kuten ennenkin. Alla asetamme kolmeen kohtaan uudet arvot.
int rivit = 2;
int sarakkeet = 3;
int[][] kaksiulotteinenTaulukko = new int[rivit][sarakkeet];
kaksiulotteinenTaulukko[0][1] = 4;
kaksiulotteinenTaulukko[1][1] = 1;
kaksiulotteinenTaulukko[1][0] = 8;
System.out.println("rivi, sarake, arvo");
for (int rivi = 0; rivi < kaksiulotteinenTaulukko.length; rivi++) {
for (int sarake = 0; sarake < kaksiulotteinenTaulukko[rivi].length; sarake++) {
int arvo = kaksiulotteinenTaulukko[rivi][sarake];
System.out.println("" + rivi + ", " + sarake + ", " + arvo);
}
}
Nyt tulostus näyttää seuraavalta:
rivi, sarake, arvo 0, 0, 0 1, 0, 4 2, 0, 0 0, 1, 8 1, 1, 1 2, 1, 0
Muistathan tarkistaa pistetilanteesi materiaalin oikeassa alareunassa olevasta pallosta!