Taulukot
Samaan tapaan kuin argumentit olivat numeroin viitattavissa lokeroissa, niin samaan tapaan voidaan tehdä ”lipastoja” muistakin muuttujista.
Jos tiedetään heti ”lipaston” koko, niin esittely tapahtuu seuraavasti
int taulukko[] = new int[5];
Mikäli taulukon kokoa ei tiedetä aluksi, niin koko voidaan määritellä myöhemminkin
int taulukko[]; /* ...koodia... Kysytään käyttäjältä taulukon koko muuttujaan koko... */ taulukko = new int[koko];
Tästä on se etu, että taulukon koko voidaan kysyä myöhemmin vaikka käyttäjältä.
Lokeroiden numerointi alkaa indeksistä 0, joten viimeinen indeksi on koko-1. Tällöin on helppo käyttää for-silmukkaa, joka menee nollasta kokoon
for (int i = 0; i < koko; i++) { //...taulukon käsittelyä... }
Esimerkki. Kysytään käyttäjältä 10 lukua ja tulostetaan ne ruudulle. Koska käytetään taulukoita, niin emme tarvitse 10 eri muuttujaa, vaan yksi riittää.
import java.io.*; class Taulukko_esittely { public static void main(String args[]) throws IOException { BufferedReader lukija = new BufferedReader(new InputStreamReader(System.in)); int taulukko[] = new int[10]; //luodaan taulukko //Annetaan taulukon jokaisen alkion arvoksi 0 for (int i=0; i < 10; i++) { taulukko[i] = 0; } System.out.println("Syötä taulukkoon kokonaislukuja!"); //Kysytään käyttäjältä alkion arvot for (int i=0; i < 10; i++) { System.out.print("Anna alkion " + i + " arvo:"); taulukko[i] = Integer.parseInt(lukija.readLine()); } //Tulostetaan taulukko for (int i=0; i < 10; i++) { System.out.println("taulukko["+i+"] = " + taulukko[i]); } } }
Moniulotteinen taulukko
class Taulukko { public static void main(String[] args) { int taulukko[][] = new int[5][5]; for (int i=0; i<5; i++) for (int j=0; j<5; j++) taulukko[i][j]=0; tulosta_taulukko(taulukko); } static void tulosta_taulukko(int[][] taulukko) { for (int i=0; i<taulukko.length; i++) { for (int j=0; j<taulukko[i].length; j++) { System.out.print(taulukko[i][j]+" "); } System.out.println(); } } }
Taulukoiden avulla voidaan siirtää metodiin ja metodista useampia arvoja kerrallaan. Alla oleva ohjelma antaa metodille parametrina taulukon, jonka arvoja muutetaan metodissa. Muuttujan arvot muuttuvat myös pääohjelmassa!
class Taulukkoesim { public static void main(String args[]) { double c[] = new double[3]; c[0] = 1.0; c[1] = 2.0; c[2] = 3.0; tulosta_taulukko(c); muuta_taulukkoa(c); tulosta_taulukko(c); } public static void muuta_taulukkoa(double[] taulukko) { taulukko[0] = 5.0; taulukko[1] = 9.0; } public static void tulosta_taulukko(double[] taulukko) { for (int i=0; i < taulukko.length; i++) System.out.print(taulukko[i]+" "); System.out.println(); } }
