Java – Massiiv ehk järjend (Ülesanne 3)

Mis on massiiv?

Kui muutujaid on vähe, siis pole nende eraldi hoimine raske. Võtame näiteks õpilased klassis. Kui neid on paar tükki, siis lihtsalt hoiadki neid eraldi muutujates. Aga kui sul oleks terve klassitäis õpilasi, või terve kool, terve riik? Sel juhul tuleb appi andmestruktuur massiiv (array), mis lubab koondada samatüübilised andmeid ühise nimetaja alla. Rõhutan siinkohal just samatüübilist, sest kui oled loonud näiteks täisarvude massiivi, siis sõnesid seal näiteks hoida ei saa.

Massiiv pole ainuke liige kogumtüüpi (collection) andmestruktuuris. Edasi õppides kohtad kindlasti veel sellised kogumeid:

  • loend (list)
  • hulk (set)
  • magasin (stack)
  • sõnastik (map)
  • järjekord (queue)

Meie keskendume antud peatükis ainult massiivile.

Massiivi loomine ja elementide väljastamine

Massiivi loomisel tuleb arvestada, et see on kindla pikkusega ja ühte tüüpi. Kui on vaja töö käigus massiivi suurust muuta või sealt eemaldada, siis piilu juba vaikselt ArrayListi poole. Aga muidu sellest edaspidi.

Massiivi loomiseks lisa tüübile kandilised sulud [] ja elemendid lisa loogeliste sulgude vahele.

Kõik elemendid massiivis on järjekorranumbriga, mille lugemist alustatakse 0-ga.

See tähendab, et kui ma tahan saada massiivist järjekorranumbriga 2 elementi, siis saan vastuseks “Jüri”.

Järjekorranumbri asemele saame kirjutada ka muutuja ning seejärel saab andmeid genereerida dünaamiliselt. Näiteks laseme valida suvalise nime massiivist.

Antud juhul tekitasime massiivid, mis olid juba meie poolt algväärtustatud. Teine võimalus on luua tühi massiiv, aga ära tuleb määrata, mitu elementi sinna mahutatakse:

  • elementide lisamise järjekorda pole oluline
  • peavad olema sama tüüpi
  • kui lisad rohkem elemente, saad veateate
  • kui kirjutad sama järjekorranumbriga elementi mitu korda, siis viimati salvestatud väärtus salvestatakse
  • väärtustamata pesa saab väärtuse null või täisarvude puhul näiteks 0

Elementide arv massiivis

Elementide arvu massiivis leiame length meetodi abil.

Ja kui me saame teada massiivi pikkuse, siis sellest alati “miinus üks” on viimane element massiivis:

Kõikide elementide kuvamine

Erinevaid tsükleid hakkame vaatama mõne peatüki pärast aga sokutan siia ühe for-tsükli, mille abil saame pöörduda iga elemendi poole ning väljastada selle. Idee on lihtne, massiivi järjekorra number peab muutuma ja nii palju kui on elemente massiivis kokku. Ehk kui jälgid tsüklit, siis alustame i=0 ja liidame nullile ühe juurde. Kui i väärtus oleks suurem kui elemente massiivis, siis tsükkel lõpetatakse.

Mitmemõõtmeline massiiv

Eelnevalt vaatasime massiivi, mida saame nimetada ka ühemõõtmeliseks massiiviks. See tähendab, et igale elemendile on omistatud üks väärtus. Massiivid saavad hoida elementides omakorda veel massiive ja sel juhul kutsutakse neid mitmemõõtmelisteks massiivideks.

Teeme oma näite kahemõõtmelise massiiviga. Pane tähele, et massiivi loomisel olen nüüd kasutanud kahte kantsulgu [][] ja elemendid on omakorda  massiivid.

Hea ettekujutuse saame, kui kirjeldaksime selle kaherealise tabelina.

Et kui soovime näiteks kuvada Malle nime, siis nimed[0][2]  esimene sulg tähistab [rida] ja teine [veergu].

Aga kuidas lugeda kokku, kui palju on näiteks mehi (ehk teises reas) ja kui palju on rahvast kokku?

Vaatame kuidas saab luua tühja mitmemõõtmelist massiivi ja siis sinna elemente lisada. Ettekujutamiseks loon Exceli tabeli, millist meil vaja oleks.

Nagu näha, on meil vaja 4 rida ja 3 veergu. Seega läheb kirja:

Edasi tuleb nüüd pesad täita. Näiteks esimese rea arvud lähevad kirja nii:

Ja kõik koos:

Mitmemõõtmelise massiivi kõikide elementide kuvamine

Alguses võib see tunduda keeruline, eriti kui me pole veel tsükleid läbi proovinud.  Aga kahemõõtmelise massiivi kuvamiseks tuleb ühte  for-tsüklit käivitada teise tsükli sees. Kui süveneda ja hiljem tagasi tulla, siis peaks sellest juba aru saama

Ülesanne 3

  • Loo uus klassi fail ja lisa kõige ette oma nimega kommentaar
  • Loo järgmistest arvudest ühemõõtmeline massiiv:
    12,5,10,10,28,17,5,19,0,13,0,22,7,0,17,2,24,1,13,29,0,7,16,8,7,4,27,8,8,23,26,25,15,2,26,1
  • Koosta programm, mis (täislausega):
    • väljastab esimese elemendi väärtuse
    • väljastab viimase elemendi väärtuse
    • leiab elementide arvu massiivis
    • leiab elementide summa massiivis
    • leiab arvude aritmeetilise keskmise
  • Loo mitmemõõtmeline massiiv antud arvudest:
    {{1,23},{2,15},{3,29},{4,15},{5,26},{6,17},{7,26},{8,15},{9,28},{10,12},{11,24},{12,16},{13,21},{14,10},{15,10},{16,26},{17,27},{18,19},{19,14},{20,14},{21,14},{22,26},{23,20},{24,28},{25,29},{26,11},{27,28},{28,19},{29,25},{30,12}}
  • Tegemist on kuupäevade ja temperatuuridega. Sinu ülesandeks on väljastada ainult temperatuurid!

Attachments1

SEE ALLAdd a note
YOU
Add your Comment

Viimased postitused

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Kontakt: kliki siia

Hetkel õpivad:

There are no users currently online

Kontrolli tunnistust

Tööribale