Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Mikä on taulukko? | Taulukot
Java Perusteet

Mikä on taulukko?

Pyyhkäise näyttääksesi valikon

Taulukot

Tietojen tallentaminen ainoastaan muuttujiin ei ole aina kätevää, sillä se kuluttaisi paljon pino-muistia ja vaatisi huomattavan määrän koodirivejä.

Tähän ongelmaan ratkaisun tarjoavat taulukot.

Note
Määritelmä

Taulukko on säiliö, joka voi sisältää kiinteän määrän saman tyyppisiä olioita.

Tarkastellaan taulukon perussyntaksia Java-ohjelmoinnissa:

Main.java

Main.java

1
dataType[] arrayName = new dataType[capacity];

Voimme käyttää mitä tahansa tietotyyppiä taulukon määrittelyssä, kuten int, float, char ja muita.

Taulukon koon määrittäminen hakasulkeissa ([]) on pakollista. Tarkastellaan esimerkkiä, jossa luodaan int-tyyppinen taulukko, jonka koko on 5:

Main.java

Main.java

12345678910
package com.example; public class Main { public static void main(String[] args) { // Declares a new int array with a length of 5 int[] intArray = new int[5]; // Prints the size of the array System.out.println(intArray.length); } }

Kuten olet ehkä huomannut, käytimme konsolitulostuksessa jotain uutta — taulukon ominaisuutta.

Taulukoilla on omat ominaisuutensa, joihin pääsee käsiksi piste (.) -notaatioilla. Esimerkissämme intArray-taulukko käyttää yhtä näistä ominaisuuksista. .length-ominaisuus palauttaa taulukon koon int-arvona. Tämä voidaan kirjoittaa myös eri tavalla:

Main.java

Main.java

123456789101112
package com.example; public class Main { public static void main(String[] args) { // Declares a new int array with a length of 5 int[] intArray = new int[5]; // Declares a new int with the value of the array's size int length = intArray.length; // Prints the size of the array System.out.println(length); } }

Tarkastellaan nyt kolmea keskeistä taulukoiden käsittelyyn liittyvää metodia ja ominaisuutta:

  • Arrays.sort(array): lajittelee taulukon alkiot nousevaan järjestykseen;
  • Arrays.fill(array, value): asettaa kaikki taulukon alkiot annettuun arvoon;
  • Arrays.toString(array): muuntaa taulukon merkkijonoesitykseksi, mikä helpottaa sen alkioiden näyttämistä.
Note
Huomio

Nämä metodit ovat peräisin java.util.Arrays-apuohjelmaluokasta. Käyttääksesi niitä, koodisi täytyy tuoda tämä luokka alussa.

Main.java

Main.java

1234567891011121314151617
package com.example; import java.util.Arrays; public class Main { public static void main(String[] args) { int[] array = {5, 2, 9, 1, 6}; // Sort the array Arrays.sort(array); System.out.println("Sorted array: " + Arrays.toString(array)); // Fill the array with the value 0 Arrays.fill(array, 0); System.out.println("Array after filling: " + Arrays.toString(array)); } }

Ensin taulukko lajitellaan nousevaan järjestykseen käyttäen Arrays.sort()-metodia ja lajiteltu taulukko näytetään käyttäen Arrays.toString(), joka muuntaa taulukon luettavaan merkkijonomuotoon. Tämän jälkeen kaikki taulukon alkiot korvataan arvolla 0 käyttäen Arrays.fill()-metodia, ja päivitetty taulukko tulostetaan samassa luettavassa muodossa.

Note
Huomio

array on vain esimerkinomainen nimi taulukolle. Voit nimetä taulukon haluamallasi tavalla tehtävän vaatimusten tai omien mieltymystesi mukaan.

Kuinka hakea tiettyä tietoa taulukosta?

Taulukot Javassa ovat indeksoituja. Jokainen taulukon alkio sijaitsee omassa solussaan ja sille annetaan yksilöllinen ID. Taulukon alkioiden numerointi alkaa 0:sta. Oletetaan, että meillä on taulukko, jossa on luvut nollasta yhdeksään, eli siinä on 10 alkiota.

Tarkastellaan kaaviota, joka havainnollistaa, miten alkiot on järjestetty taulukkoon:

Jos meillä on taulukko, jossa on 10 alkiota, ensimmäinen alkio tallennetaan indeksiin 0 ja viimeinen indeksiin 9, koska indeksointi alkaa nollasta.

Note
Huomio

Ohjelmoinnissa taulukot käyttävät nollapohjaista indeksointia, eli ensimmäinen alkio on kohdassa 0. Kaavan N-1 avulla voidaan laskea alkion sijainti taulukossa, missä N on alkion järjestysnumero (alkaen yhdestä) ja N-1 on sen indeksi taulukossa.

Käytännön harjoittelu on aina parempi kuin pelkkä teoria, joten tässä on esimerkki alkioiden lisäämisestä ja poistamisesta taulukosta käyttäen indeksejä:

Main.java

Main.java

12345678910111213141516
package com.example; public class Main { public static void main(String[] args) { // Declares a new int array with a length of 5 int[] intArray = new int[5]; // Fills the array with numbers from 1 to 5 intArray[0] = 1; intArray[1] = 2; intArray[2] = 3; intArray[3] = 4; intArray[4] = 5; // Prints the fourth element of the array System.out.println(intArray[3]); } }

Olemme täyttäneet taulukkomme alkioilla yhdestä viiteen määrittämällä jokaisen alkion indeksin avulla. Tämä tapa ei kuitenkaan ole kovin elegantti ja vaatii paljon rivejä koodia. Tarkastellaan vaihtoehtoista tapaa määritellä taulukko, joka on valmiiksi täytetty:

Main.java

Main.java

12345678910
package com.example; public class Main { public static void main(String[] args) { // Declares a new pre-filled int array with a length of 5 int[] intArray = {1, 2, 3, 4, 5}; // Prints the first element of the array System.out.println(intArray[0]); } }

Luoimme taulukon, joka on identtinen aiemmin tekemämme kanssa, mutta tällä kertaa se vaati vähemmän koodirivejä ja näytti tyylikkäämmältä.

On tärkeää huomata, että käytettäessä tätä taulukkonotaatiota, elementit tulee sulkea aaltosulkeisiin ({}) ja erottaa pilkuilla.

Note
Huomio

Kun taulukko määritellään tällä tavalla, sen kokoa ei ilmoiteta erikseen. Kääntäjä määrittää taulukon tarvittavan pituuden annettujen alkioiden perusteella ja täyttää sen automaattisesti.

1. Mitä tulostuu, kun tämä koodi suoritetaan?

2. Mitä tulostuu, kun tämä koodi suoritetaan?

question mark

Mitä tulostuu, kun tämä koodi suoritetaan?

Valitse oikea vastaus

question mark

Mitä tulostuu, kun tämä koodi suoritetaan?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 1
some-alt