Käyttäjän työkalut

Sivuston työkalut


java:taulukot

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

Tehtäviä taulukoista

java/taulukot.txt · Viimeksi muutettu: 2015/08/13 16:36 / 127.0.0.1