Kaksiulotteinen taulukko

Kaksiulotteinen taulukko

Kaksiulotteinen taulukko on paikallaan silloin, kun ohjelma käsittelee ruudukon muodossa olevaa tietoa.

Taulukon määrittely

Seuraava komento määrittelee tyhjän kaksiulotteisen taulukon, jonka korkeus on 3 ja leveys on 5:

int[][] taulu = new int[3][5];

Tämän komennon tuloksena on tyhjä taulukko:

00000
00000
00000

Taulukon sisällön voi antaa myös suoraan määrittelyssä:

int[][] taulu = {{3, 1, 1, 7, 2},
                 {5, 2, 3, 1, 3},
                 {8, 5, 1, 2, 2}};

Tämän komennon tuloksena on seuraava taulukko:

31172
52313
85122

Taulukon käsittely

Taulukon sisältöä voi käsitellä seuraavasti:

taulu[2][1] = 2;
taulu[0][3] = 7;
System.out.println(taulu[1][1]);

Taulukon tulostaminen

Seuraava koodi tulostaa koko taulukon sisällön:

for (int i = 0; i < taulu.length; i++) {
    for (int j = 0; j < taulu[0].length; j++) {
	System.out.print(taulu[i][j] + " ");
    }
    System.out.println();
}

Esimerkki: Labyrintti

Taulukkoon voi tallentaa vaikkapa labyrintin sisällön. Seuraavassa esimerkissä luku 0 tarkoittaa lattiaa ja luku 1 tarkoittaa seinää.

int[][] laby = {{1, 1, 1, 1, 1, 1, 1, 1},
                {1, 0, 0, 0, 1, 0, 0, 1},
                {1, 0, 1, 0, 0, 0, 1, 1},
                {1, 0, 1, 0, 1, 0, 0, 1},
                {1, 1, 1, 1, 1, 1, 1, 1}};
for (int i = 0; i < laby.length; i++) {
    for (int j = 0; j < laby[0].length; j++) {
	if (laby[i][j] == 0) {
	    System.out.print(".");
	} else {
	    System.out.print("#");
	}
    }
    System.out.println();
}

Ohjelman tulostus on seuraava:

########
#...#..#
#.#...##
#.#.#..#
########