Käyttäjän työkalut

Sivuston työkalut


java:taulukot

Erot

Tämä näyttää erot valitun ja nykyisen version kesken tästä sivusta.

Linkki vertailunäkymään

java:taulukot [2016/01/12 08:09]
java:taulukot [2015/08/13 13:36] (nykyinen)
Rivi 1: Rivi 1:
 +====== 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
 +
 +<code java>
 +int taulukko[];
 +/* ...koodia...
 +
 +Kysytään käyttäjältä taulukon koko muuttujaan koko...
 +*/
 +
 +taulukko = new int[koko];
 +</​code>​
 +
 +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 ​
 +
 +<code java>
 +for (int i = 0; i < koko; i++)
 +{
 +         //​...taulukon käsittelyä...
 +}
 +</​code>​
 +
 +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ää.
 +
 +<code java>
 +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]);​
 +             }
 +      }
 +}
 +</​code>​
 +
 +
 +===== Moniulotteinen taulukko =====
 +
 +<code java>
 +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();​
 + }
 + }
 +}
 +</​code>​
 +
 +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!
 +
 +<code java>
 +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();​
 +     }
 +
 +
 +
 +}
 +</​code>​
 +
 +[[Java:​Taulukot:​Tehtavia|Tehtäviä taulukoista]]