Javan Arrayt ja ArrayListit

  • Reading time:8 mins read

Javan Arrayt ja ArrayListit – Arrayt                                          

Javassa array eli taulukko on tietorakenne, jota käytetään useiden samantyyppisten arvojen tallentamiseen. Sen voi ajatella olevan kokoelma samantyyppisiä muuttujia, jotka löytyvät yhden nimen alta.

 

 

Esimerkki

Oletetaan, että sinulla on suosikkiväri, vaikkapa “blue” ja haluat tallentaa sen koodiisi, muuttuja on täydellinen ratkaisu ongelmaan. Jos sinulla on kuitenkin useampia suosikkivärejä, sinun täytyy määritellä jokaiselle niistä oma muuttujansa.

 

 

Tämä ei ole kovin käytännöllistä, etenkään jos arvoja on enemmän, esimerkiksi 5, 7 tai 15. Tässä tapauksessa arvot on kätevämpi tallentaa taulukkoon tai listaan.

Taulukon (array) ja listan (arrayList) erot

Javassa taulukko ja lista ovat eri asioita, mutta useissa ohjelmointikielissä niitä ei edes erotella toisistaan. Taulukolla on Javassa kiinteä pituus, mutta listojen kokoa voidaan muuttaa ja ne ovat dynaamisempia. Useimmissa tapauksissa listat ovat käyttökelpoisempia kuin taulukot.

 

Javan Arrayt ja ArrayListit

 

Taulukon luominen

Taulukon luomiseksi meidän täytyy määritellä ensin muuttujan tietotyyppi ja lisätä sen perään hakasulkeet. Sen jälkeen lisäämme muuttujan nimen ja yhtäsuuruusmerkkien toiselle puolen avaamme aaltosulkeet taulukon arvoja varten. Tässä esimerkissä määrittelemme colors-taulukon, joka sisältää merkkijonoja kirjoittamalla: String[] colors = {};. Lopuksi lisäämme värien nimet aaltosulkeiden sisään pilkuilla eroteltuna: {“blue”, “green”, “orange”, “yellow”}.

 

 

Kun olemme luoneet taulukon, voimme tulostaa koko taulukon tai siitä valitun elementin käyttämällä sen indeksiä. Tämä tehdään käyttämällä tulostusfunktiota ja hakasulkeista sarjan nimen jälkeen System.out.println(colors[]). Meidän on lisättävä tulostettavan alkion indeksi hakasulkeiden sisään. Juuri luomassamme taulukossa “blue” on indeksissä 0, kun taas “green” ja “orange” ovat vastaavasti indekseissä 1 ja 2. Tämä tulostaa värien nimet alla esitetyllä tavalla.

 

 

Voimme myös tulostaa kaikki taulukon elementit käyttämällä for-silmukkaa. Käymme taulukkoa läpi, kunnes saavutamme colors-taulukossa olevien elementtien määrän. Taulukon pituuden selvittämiseen käytämme for-silmukan määrittelyssä metodia colors.length.

 

 

Taulukoita voidaan myös muokata aivan kuten muuttujia. Voimme esimerkiksi päättää muuttaa indeksissä 2 olevan värin arvosta “orange” arvoon “pink“. Voimme tehdä tämän käyttämällä muutettavan elementin indeksiä alla esitetyn mukaisesti.

 

 

Voimme siis muuttaa taulukon arvoja, mutta emme voi lisätä siihen uusia elementtejä, koska taulukon pituutta ei voi jälkikäteen muuttaa. Voisimme luoda uuden taulukon ja lisätä siihen alkuperäisen taulukon elementit sekä haluamamme uudet elementit. Tämä ei ole kuitenkaan erityisen käytännöllistä, joten tällaisessa tapauksessa Javan listarakenne ArrayList on paljon kätevämpi vaihtoehto.

 

 

ArrayListit

ArrayListeihin voimme siis lisätä ja poistaa elementtejä vapaasti. Voimme luoda uuden ArrayListin esimerkkiämme varten kirjoittamalla ArrayList<String> colorList = new ArrayList<>( ); , jossa “colorList” on ArrayListin nimi ja “ArrayList” on luokka, joka täytyy tuoda koodiin komennolla  “import java.util.ArrayList”. Luomme ensin tyhjän ArrayListin ja sen jälkeen alamme lisäämään siihen elementtejä.

Elementtien lisäämiseksi käytämme ArrayListin  “add” -metodia. Lisäämme värit “green”, “orange” ja “yellow“ seuraavasti: colorList.add(“green”); colorList.add(“orange”); colorList.add(“yellow”);. Tarvittava koodi on esitetty kokonaisuudessaan alla.

 

 

ArrayListille voidaan suorittaa erilaisia operaatioita. Voimme muun muassa tulostaa elementtien arvoja, poistaa elementtejä ja lisätä uusia. Elementtien tulostaminen edellyttää, että välitämme ArrayListin nimen tulostusfunktiolle: System.out.println(colorList).

Jos haluamme poistaa elementin ArrayLististä, käytämme “remove“-metodia, ja voimme poistaa elementin joko sen arvon tai indeksin perusteella. Esimerkkinä voimme poistaa ArrayListin indeksissä 1 olevan elementin komennolla colorList.remove(1).

Elementin poistamisen lisäksi voimme myös lisätä uusia elementtejä sekä korvata jo olemassa olevia elementtejä käyttämällä metodia “set” ja ilmoittamalla sen elementin indeksin, jonka haluamme korvata. Seuraavassa esimerkissä olemme korvanneet ArrayListimme indeksissä 2 olevan arvon “yellow” arvolla “magenta” kirjoittamalla colorList.set(2, “magenta”).

 

 

Voimme myös selvittää ArrayListissä olevien elementtien määrän kirjoittamalla colorList.size() ja jopa lajitella värit aakkosjärjestykseen käyttämällä Collections-luokan sort-metodia Collections.sort(colorList). Tämän metodin käyttämiseksi meidän täytyy kuitenkin tuoda Collections-paketti koodiin kirjoittamalla koodimme alkuun “import java.util.Collections.

 

Lopuksi voimme myös tulostaa listan elementit yksi kerrallaan käyttämällä for-silmukkaa ja käyttäen ArrayListin kokoa rajana sille, kuinka monta kertaa iteroimme listan läpi. Kaikki yllä kuvatut toiminnot on esitetty alla olevassa esimerkkikoodissa.

 

 

Tiivistelmä

Jos olet kiinnostunut ohjelmoinnista ja haluat nähdä enemmän videoita aiheesta, löydät niitä YouTube kanavaltamme.

CodeBerryn sivuilta voit käydä lukemassa lisää devaamiseen liittyvää materiaalia ja myös katsoa, kuinka muut ovat onnistuneesti opiskelleet itselleen uuden ammatin. Lisää koodaukseen liittyvää materiaalia seuraavista linkeistä: