Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet

Samankaltaiset esitykset


Esitys aiheesta: "Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet"— Esityksen transkriptio:

1 Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
© Jukka Harju, Jukka Juslin

2 © Jukka Harju, Jukka Juslin
Tuloksellinen Java-ohjelmointi Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1.0 -lisenssillä. Lisäys edelliseen lisenssiin: Kalvojen muokkaaminen on sallittu vain opettajille, joiden kursseilla käytetään kurssikirjana Tuloksellinen Java-ohjelmointi -kirjaa. © Jukka Harju, Jukka Juslin

3 © Jukka Harju, Jukka Juslin
Missä ollaan? Tuloksellinen Java-ohjelmointi Taulukko Taulukon luominen Taulukon käyttö Taulukon järjestäminen Oliotaulukko Wrapper-luokat Linkitetyt listat ArrayList-luokka Iterator-rajapinta HashMap-luokka Properties-luokka © Jukka Harju, Jukka Juslin

4 © Jukka Harju, Jukka Juslin
Taulukko Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti Taulukot, jotka tallettavat olioviittauksia Vaihtuvamittaiset parametrilistat © Jukka Harju, Jukka Juslin

5 Taulukko Taulukko on järjestetty lista arvoja 0 1 2 3 4 5 6 7 8 9
pisteet Taulukolla on nimi (viittausmuuttujan nimi) Jokaisella arvolla on numeerinen indeksi Taulukko, jonka koko on N-solua indeksoidaan nollasta indeksiin N-1 asti. Yo taulukko sisältää 10 solua, jotka on indeksoitu 0:sta 9:ään © Jukka Harju, Jukka Juslin

6 © Jukka Harju, Jukka Juslin
Taulukko Tiettyyn arvoon taulukossa viitataan käyttämällä taulukon nimeä, jota seuraa indeksin numero hakasulkeissa. Esimerkiksi: pisteet[2] viittaa arvoon 94 (kolmas arvo taulukossa). Indeksi viittaa soluun, johon tallennetaan esimerkin taulukossa yksi int-tyyppinen arvo © Jukka Harju, Jukka Juslin

7 © Jukka Harju, Jukka Juslin
Taulukko Taulukon soluun voidaan tallentaa arvo, solun sisältö voidaan tulostaa tai solua voidaan käyttää laskutoimituksessa. pisteet[2] = 89; pisteet[eka] = pisteet[eka] + 2; keskiarvo = (pisteet[0] + pisteet[1])/2; System.out.println ("Huippu = " + pisteet[5]); © Jukka Harju, Jukka Juslin

8 © Jukka Harju, Jukka Juslin
Taulukko Taulukon kaikkien solujen tietotyyppi on sama. Solun tyyppi voi olla primitiivityyppi tai viittausmuuttuja. Taulukko voidaan luoda sisältämään esimerkiksi int- tyyppistä tietoa, merkkejä, merkkijonoja (viittauksia String -luokan olioihin), viittauksia Kolikko–luokan olioihin yms. Javassa taulukko itse on olio. © Jukka Harju, Jukka Juslin

9 © Jukka Harju, Jukka Juslin
Missä ollaan? Tuloksellinen Java-ohjelmointi Taulukko Taulukon luominen Taulukon käyttö Taulukon järjestäminen Oliotaulukko Wrapper-luokat Linkitetyt listat ArrayList-luokka Iterator-rajapinta HashMap-luokka Properties-luokka © Jukka Harju, Jukka Juslin

10 int[] pisteet = new int[10];
Taulukon luominen pisteet-taulukko voidaan luoda seuraavasti: int[] pisteet = new int[10]; Muuttujan pisteet tyyppi on int[] (solun tyyppi on int, []-merkit kertovat kyseessä olevan taulukon). Huomaa, että taulukon tyyppi ei määrää taulukon kokoa, vaan jokaiselle taulukko-oliolle annetaan oma koko. Viittausmuuttuja pisteet asetetaan osoittamaan uuteen taulukko-olioon, joka pystyy säilyttämään 10 int-tyyppistä tietoa. © Jukka Harju, Jukka Juslin

11 © Jukka Harju, Jukka Juslin
Taulukon luominen Muutamia muita esimerkkejä taulukon luonnista. float[] hinnat = new float[500]; boolean[] vivut; vivut = new boolean[20]; char[] merkit = new char[1750]; © Jukka Harju, Jukka Juslin

12 © Jukka Harju, Jukka Juslin
Missä ollaan? Tuloksellinen Java-ohjelmointi Taulukko Taulukon luominen Taulukon käyttö Taulukon järjestäminen Oliotaulukko Wrapper-luokat Linkitetyt listat ArrayList-luokka Iterator-rajapinta HashMap-luokka Properties-luokka © Jukka Harju, Jukka Juslin

13 © Jukka Harju, Jukka Juslin
Taulukon käyttö Java SE 5:n Iterator-luokka helpottaa taulukon elementtien läpikäyntiä: for (int piste : pisteet) { System.out.println(piste); } Enimmäkseen käytetään kuitenkin for-toistorakennetta taulukon läpikäyntiin: for (int i = 0; i < pisteet.length; i++) { System.out.println(pisteet[i]); } © Jukka Harju, Jukka Juslin

14 Taulukon rajojen tarkistaminen
Kun taulukko on luotu, sillä on kiinnitetty koko, jota ei voida enää muuttaa. Indeksin, jolla viitataan taulukon soluun, täytyy olla taulukon rajojen sisällä. Toisin sanoen indeksin arvon pitää olla >= 0 ja <N (taulukon koko). Java kääntäjä heittää ArrayIndexOutOfBoundsException-luokan poikkeuksen, jos indeksi on taulukon rajojen ulkopuolella. Tätä kutsutaan automaattiseksi rajojen tarkistamiseksi. © Jukka Harju, Jukka Juslin

15 Taulukon rajojen tarkistaminen
Esimerkiksi taulukon merkit koko on 100, mutta indeksi laskuri saa liikkua vain välillä 0-99. Jos laskurin arvo on 100, silloin seuraava viittaus aiheuttaa poikkeuksen heittämisen: System.out.println(merkit[laskuri]); On tyypillistä tehdä ns. off-by-one virheitä taulukkoja käytettäessä. ongelma for (int i=0; i <= 100; i++) { merkit[i] = i*50 + epsilon; } © Jukka Harju, Jukka Juslin

16 Taulukon rajojen tarkistaminen
Jokaisella taulukko-oliolla on julkinen vakioattribuutti nimeltään length, joka sisältää taulukon koon. Tähän viitataan taulukon nimen kautta käyttäen length- attribuuttia, ei esim. getLength-metodia: int pituus = pisteet.length; Huomaa, että length sisältää solujen lukumäärän eikä suurinta sallittua indeksinumeroa. © Jukka Harju, Jukka Juslin

17 Toinen taulukon luontitapa
Hakasulkeet taulukon tyypissä voidaan kirjoittaa taulukon tietotyypin tai nimen jälkeen. Seuraavat kaksi lausetta ovat merkitykseltään identtiset: float[] hinnat; float hinnat[]; Ensimmäinen tapa on helpommin luettava ja suositeltava. © Jukka Harju, Jukka Juslin

18 © Jukka Harju, Jukka Juslin
Alustuslistat Alustuslistaa voidaan käyttää arvojen sijoittamisessa taulukkoon sen luontivaiheessa. Arvot kirjoitetaan aaltosulkeisiin pilkulla erotettuina. Esimerkkejä: int[] yksikot = {147, 323, 89, 933, 540, 269, 97, 114, 298, 476}; char[] arvosanat = {'1', '2', '3', '4', '5'}; © Jukka Harju, Jukka Juslin

19 © Jukka Harju, Jukka Juslin
Alustuslistat Huomaa, että kun käytetään alustuslistaa: Ei käytetä new-operaattoria Taulukon kokoa ei määritellä Taulukon koko määrittyy automaattisesti sen mukaan kuinka monta arvoa alustuslistassa on. Alustuslistaa voidaan käyttää vain taulukon luonnin yhteydessä. © Jukka Harju, Jukka Juslin

20 © Jukka Harju, Jukka Juslin
Taulukko parametrina Koko taulukko voidaan välittää parametrina metodille. Kuten mikä tahansa muun olion kanssa, viittaus taulukkoon (eli olioon) välitetään metodille. Kun taulukkoa muutetaan metodin sisällä näkyvät muutokset myös kutsuneeseen metodiin. Taulukkoa ei siis ole tarpeen palauttaa metodista. Myös yksittäinen taulukon solu voidaan välittää metodille, kunhan solun tyyppi vastaa metodin parametrimuuttujan tyyppiä. © Jukka Harju, Jukka Juslin

21 © Jukka Harju, Jukka Juslin
Missä ollaan? Tuloksellinen Java-ohjelmointi Taulukko Taulukon luominen Taulukon käyttö Taulukon järjestäminen Oliotaulukko Wrapper-luokat Linkitetyt listat ArrayList-luokka Iterator-rajapinta HashMap-luokka Properties-luokka © Jukka Harju, Jukka Juslin

22 String[] sanat = new String[5];
Oliotaulukko Taulukon elementit voivat olla viittausmuuttujia. Seuraava lause varaa tilaa viidelle viittausmuuttujalle, jotka viittaavat String-luokan olioihin: String[] sanat = new String[5]; Yo lause ei luo String–olioita. Taulukko sisältää null–alkuarvoja. Olio, joka tallennetaan taulukkoon täytyy erikseen luoda. © Jukka Harju, Jukka Juslin

23 © Jukka Harju, Jukka Juslin
Oliotaulukko sanat-taulukko alkuarvoisessa tilanteessa: sanat null © Jukka Harju, Jukka Juslin

24 © Jukka Harju, Jukka Juslin
Oliotaulukko Sen jälkeen kun muutamia String-olioita on luotu ja tallennettu taulukkoon: "hauskuus" sanat null "luonti" "nopeus" © Jukka Harju, Jukka Juslin

25 Komentoriviargumentit
main-metodin määrittelystä havaitaan, että metodi saa parametrina String-tyyppisen taulukon. Taulukon arvot ovat peräisin komentoriviargumenteista, jotka annetaan ohjelmalle käynnistyksen yhteydessä. Esimerkiksi seuraava komento välittää kaksi String - oliota main-metodille: > java ohjelma uskomaton kiva Nämä merkkijonot tallennetaan indeksien 0 ja 1 kohtiin main-metodin parametritaulukkoon. © Jukka Harju, Jukka Juslin

26 © Jukka Harju, Jukka Juslin
Missä ollaan? Tuloksellinen Java-ohjelmointi Taulukko Taulukon luominen Taulukon käyttö Taulukon järjestäminen Oliotaulukko Wrapper-luokat Linkitetyt listat ArrayList-luokka Iterator-rajapinta HashMap-luokka Properties-luokka © Jukka Harju, Jukka Juslin

27 © Jukka Harju, Jukka Juslin
Wrapper-luokat Wrapper-luokkia käytetään ”kietomaan” alkeistyyppinen tieto olion sisään (attribuutin arvoksi). Tämä on tarpeen koska taulukkoa kehittyneemmät Javan tietorakenteet hyväksyvät arvoikseen vain olioita. Java SE 5 toi uutena ns. ”autoboxing”-ominaisuuden, jolla Wrapper-luokkien käyttö on erittäin helppoa. Jokaiselle primitiivityypille löytyy oma Wrapper- luokkansa (ks. kirjan taulukko 9.1). © Jukka Harju, Jukka Juslin

28 © Jukka Harju, Jukka Juslin
Wrapper-luokat Seuraavassa esimerkki Wrapper-luokan käytöstä autoboxingilla. Katso myös kirjan esimerkki 9.5. © Jukka Harju, Jukka Juslin

29 © Jukka Harju, Jukka Juslin
Wrapper-luokat /**  * Double-luokan käyttöesimerkki autoboxingilla.  */ public class WrapperEsimerkki {   public Double kiedo(double luku) {     Double lukuOliona = luku;     return lukuOliona;   }      public double palauta(Double lukuOliona) {     double luku = lukuOliona;     return luku;   }      public static void main(String[] args) {     WrapperEsimerkki muunnin = new WrapperEsimerkki();     double lukuAlkeistyyppisenä = 123.45;     Double lukuOliona = muunnin.kiedo(lukuAlkeistyyppisenä);     lukuAlkeistyyppisenä = muunnin.palauta(lukuOliona);   } } Suora sijoitus riittää, alkeistyyppi muuntuu olioksi. Suora sijoitus riittää, olio muuntuu alkeistyypiksi. © Jukka Harju, Jukka Juslin

30 © Jukka Harju, Jukka Juslin
Wrapper-luokat Ilman autoboxingia sama toiminta vaatisi seuraavan koodin. © Jukka Harju, Jukka Juslin

31 © Jukka Harju, Jukka Juslin
Wrapper-luokat /**  * Double-luokan käyttöesimerkki autoboxingilla.  */ public class WrapperEsimerkki {   public Double kiedo(double luku) {     Double lukuOliona = new Double(luku);     return lukuOliona;   }      public double palauta(Double lukuOliona) {     double luku = lukuOliona.doubleValue();     return luku;   }      public static void main(String[] args) {     WrapperEsimerkki muunnin = new WrapperEsimerkki();     double lukuAlkeistyyppisenä = 123.45;     Double lukuOliona = muunnin.kiedo(lukuAlkeistyyppisenä);     lukuAlkeistyyppisenä = muunnin.palauta(lukuOliona);   } } Pelkkä sijoitus ei riitä. Pelkkä sijoitus ei riitä. © Jukka Harju, Jukka Juslin

32 © Jukka Harju, Jukka Juslin
Missä ollaan? Tuloksellinen Java-ohjelmointi Taulukko Taulukon luominen Taulukon käyttö Taulukon järjestäminen Oliotaulukko Wrapper-luokat Linkitetyt listat ArrayList-luokka Iterator-rajapinta HashMap-luokka Properties-luokka © Jukka Harju, Jukka Juslin

33 © Jukka Harju, Jukka Juslin
Linkitetyt listat Linkitetty lista on dynaaminen tietorakenne. Dynaamisen tietorakenteen kokoa voidaan muuntaa myös luonnin jälkeen (vrt. taulukko). Linkitetty lista on järjestetty joukko solmuja, joista jokainen sisältää tiedon lisäksi linkin seuraavaan solmuun. linkki tieto linkki tieto linkki tieto linkki tieto © Jukka Harju, Jukka Juslin

34 © Jukka Harju, Jukka Juslin
Linkitetyt listat Tieto on viittausmuuttuja, eli viittaa olioon. linkki tieto linkki tieto linkki tieto linkki tieto OLIO OLIO OLIO OLIO © Jukka Harju, Jukka Juslin

35 © Jukka Harju, Jukka Juslin
Linkitetyt listat Linkitetystä listasta voidaan poistaa solmu, muuttamalla poistettavaan solmuun osoittavaa linkkiä ja poistettava solmun linkkiä. linkki tieto linkki tieto linkki tieto linkki tieto © Jukka Harju, Jukka Juslin

36 © Jukka Harju, Jukka Juslin
Linkitetyt listat Linkitettyyn listaan voidaan lisätä solmu lisäämällä solmu sekä tarvittava linkki. linkki tieto linkki tieto linkki tieto linkki tieto linkki tieto © Jukka Harju, Jukka Juslin

37 © Jukka Harju, Jukka Juslin
Missä ollaan? Tuloksellinen Java-ohjelmointi Taulukko Taulukon luominen Taulukon käyttö Taulukon järjestäminen Oliotaulukko Wrapper-luokat Linkitetyt listat ArrayList-luokka Iterator-rajapinta HashMap-luokka Properties-luokka © Jukka Harju, Jukka Juslin

38 © Jukka Harju, Jukka Juslin
ArrayList –luokka Luokka ArrayList sijaitsee pakkauksessa java.util. ArrayList on linkitetyn listan eräs toteutus. Periytyy luokasta AbstractList. Voidaan määritellä hyväksymään minkä tahansa tyyppisiä viittausmuuttujia, ei kuitenkaan primitiivityyppisiä muuttujia. © Jukka Harju, Jukka Juslin

39 © Jukka Harju, Jukka Juslin
ArrayList –luokka Tyypittämättömän listan luonti: ArrayList lista = new ArrayList(); Tyypittämätön lista hyväksyy mitä tahansa tyyppiä olevat viittausmuuttujat. Tyypitetty lista hyväksyy vain listan tyypin mukaisia viittausmuuttujia, virheellisistä sijoitusyrityksistä saadaan ilmoitus jo kääntäjältä. Tyypitetyn listan luonti: ArrayList<String> lista = new ArrayList<String>(); © Jukka Harju, Jukka Juslin

40 © Jukka Harju, Jukka Juslin
ArrayList –luokka Tärkeimpiä metodeja: add (ylikuormitettu) lisää elementin listaan clear tyhjentää listan contains tutkii löytyykö etsittävä elementti listasta get palauttaa elementin halutusta positiosta isEmpty tutkii onko lista tyhjä remove (ylikuormitettu) poistaa elementin halutusta positiosta tai halutun elementin size palauttaa listan elementtien lukumäärän © Jukka Harju, Jukka Juslin

41 © Jukka Harju, Jukka Juslin
Iterator-rajapinta Iteraattori on olio, jonka avulla voidaan läpikäydä kokoelma (esim. ArrayList-olio). Iteraattorille on käytettävissä metodit: hasNext palauttaa arvon true, mikäli kokoelmassa on vielä elementtejä jäljellä next palauttaa kokoelman seuraavan elementin remove poistaa viimeksi palautetun elementin kokoelmasta ArrayList-luokan oliolle saadaan luotua iteraattori seuraavasti: ArrayList lista = new ArrayList(); Iterator iter = lista.iterator(); ArrayList-luokan iterator-metodi on peritty yliluokalta AbstractList. © Jukka Harju, Jukka Juslin

42 ArrayList & Iterator käyttöesimerkki
Seuraava esimerkkiohjelma käyttää ArrayList- ja Iterator-luokkia. Katso myös kirjan esimerkki 9.6. © Jukka Harju, Jukka Juslin

43 © Jukka Harju, Jukka Juslin
Luokka sijaitsee pakkauksessa fi.tuloksellinenjava.arrayList package fi.tuloksellinenjava.arrayList; import java.util.ArrayList; import java.util.Iterator; /**   * ArrayList-luokan käyttöesimerkki   */ public class ArrayListEsimerkki {     private ArrayList lista;     /**       * Oletusmuodostin       */     public ArrayListEsimerkki() {         lista = new ArrayList();     }     /**       * Metodi tulostaa listan sisällön.       */     public void tulostaLista() {         if (lista.isEmpty()) {             System.out.println("Tulostettava lista on tyhjä!");         } else {             System.out.println("Tulostettavan listan sisältö:");             Iterator iter = lista.iterator();             while (iter.hasNext()) {                 System.out.print(iter.next() + " ");             }             System.out.println();         }     } Luokassa käytetään pakkauksessa java.util sijaitsevia luokkia © Jukka Harju, Jukka Juslin

44 © Jukka Harju, Jukka Juslin
    /**       * Metodi lisää listaan String-olion.       */     public void lisaa(String lisattavaData) {         lista.add(lisattavaData);     }     /**       * Metodi lisää listaan taulukko-olion.       */     public void lisaa(String[] lisattavaData) {         for (int i = 0; i < lisattavaData.length; i++) {             lista.add(lisattavaData[i]);         }     }     /**       * Metodi palauttaa listan ensimmäisen solmun sisällön.       */     public Object haeEnsimmainen() {         return lista.get(0);     }     /**       * Metodi palauttaa listan viimeisen solmun sisällön.       */     public Object haeViimeinen() {         return lista.get(lista.size()-1);     }    © Jukka Harju, Jukka Juslin

45 © Jukka Harju, Jukka Juslin
    /**       * Metodi etsii ja tulostaa halutun olion sijainnin listalla.       */     public void etsi(Object etsittava) {         int indeksi = lista.indexOf(etsittava);         if (indeksi >= 0) {             System.out.println(                 "Etsimäsi solmu " + etsittava +                 " sijaitsee listan positiossa " + indeksi + ".");         } else {             System.out.println(                 "Lista ei sisällä etsimääsi solmua " + etsittava + ".");         }     }     /**       * Metodi poistaa listasta olion.       */     public void poista(Object poistettava) {         lista.remove(poistettava);     } } © Jukka Harju, Jukka Juslin

46 © Jukka Harju, Jukka Juslin
package fi.tuloksellinenjava.arrayList; public class ArrayListTesti {     public static void main(String[] args) {       ArrayListTesti testaaja = new ArrayListTesti();       testaaja.testaa();   }   /**    * Metodi sisältää varsinaisen testikoodin.    */   public void testaa() {      // luodaan uusi lista ja tulostetaan sen sisältö     ArrayListEsimerkki esim = new ArrayListEsimerkki();      esim.tulostaLista();     // lisätään listaan yksittäinen solmu      esim.lisaa("Seppo");     esim.tulostaLista();     //lisätään listaan taulukon tiedot (2 solmua)     String[] taulukko = {"Matti", "Teppo"};     esim.lisaa(taulukko);     esim.tulostaLista();     //tulostetaan ensimmäisen solmun sisältö     System.out.println("\nEnsimmäinen solmu:"+esim.haeEnsimmainen());     //tulostetaan viimeisen solmun sisältö     System.out.println("\nViimeinen solmu:"+esim.haeViimeinen());     //etsitään solmuja     esim.etsi("Jaakko");     esim.etsi("Seppo");     esim.poista("Seppo");     System.out.println("Poistettiin solmu 'Seppo'");     esim.etsi("Seppo");        } } © Jukka Harju, Jukka Juslin

47 © Jukka Harju, Jukka Juslin
Missä ollaan? Tuloksellinen Java-ohjelmointi Taulukko Taulukon luominen Taulukon käyttö Taulukon järjestäminen Oliotaulukko Wrapper-luokat Linkitetyt listat ArrayList-luokka Iterator-rajapinta HashMap-luokka Properties-luokka © Jukka Harju, Jukka Juslin

48 © Jukka Harju, Jukka Juslin
HashMap –luokka Luokka HashMap sijaitsee pakkauksessa java.util. HashMap on hajautettu tietorakenne, johon voidaan viedä avain-arvo -pareja. HashMapista pystytään hakemaan tehokkaasti avainta vastaava arvo. Voidaan määritellä hyväksymään minkä tahansa tyyppisiä viittausmuuttujia, ei kuitenkaan primitiivityyppisiä muuttujia. © Jukka Harju, Jukka Juslin

49 © Jukka Harju, Jukka Juslin
HashMap –luokka Tyypittämättömän HashMapin luonti: HashMap tiedot = new HashMap(); Tyypittämätön HashMap hyväksyy mitä tahansa tyyppiä olevat viittausmuuttujat. Tyypitetty HashMap hyväksyy vain HashMapin tyypin mukaisia viittausmuuttujia, virheellisistä sijoitusyrityksistä saadaan ilmoitus jo kääntäjältä. Tyypitetyn HashMapin luonti: HashMap<String, String> tiedot = new HashMap<String, String>(); © Jukka Harju, Jukka Juslin

50 © Jukka Harju, Jukka Juslin
HashMap –luokka Tärkeimpiä metodeja: clear tyhjentää HashMapin containsKey tutkii löytyykö etsittävä avain HashMapista. containsValue tutkii löytyykö etsittävä arvo HashMapista get palauttaa haettavaa avainta vastaavan arvon isEmpty tutkii onko HashMap tyhjä put vie HashMapiin annetun avainmen ja arvon remove poistaa annetun avaimen mukaisen avain-arvo –parin HashMapista size palauttaa HashMapin avain-arvo -parien lukumäärän © Jukka Harju, Jukka Juslin

51 HashMapin käyttöesimerkki
Seuraava esimerkkiohjelma käyttää HashMap-luokkaa. Katso myös kirjan esimerkki 9.8. © Jukka Harju, Jukka Juslin

52 HashMapin käyttöesimerkki
package tietorakenteet; import java.util.HashMap; /**  * HashMap-luokan käyttöesimerkki.  */ public class HashMapEsimerkki {   private HashMap<String, String> tiedot;   /**    * Oletusmuodostin, joka luo attribuuttina    * olevan HashMapin ja vie sinne sisältöä.    */   public HashMapEsimerkki() {     //luodaaan tyhjä HashMap     tiedot = new HashMap<String, String>();          //viedään HashMapiin avain-arvo -pareja     tiedot.put("hakemisto", "C:/temp");     tiedot.put("lokitiedosto", "HashMapEsimerkki.log");     tiedot.put("käyttäjä", "admin");   }   © Jukka Harju, Jukka Juslin

53 HashMapin käyttöesimerkki
  /**    * Hakee HashMapista avainta vastaavan arvon.    */   public String haeArvo(String avain) {     String arvo = tiedot.get(avain);     return arvo;   }   public HashMap<String, String> getTiedot() {     return tiedot;   }      public static void main(String[] args) {     HashMapEsimerkki hajauttaja = new HashMapEsimerkki();     HashMap<String, String> tiedot = hajauttaja.getTiedot();     String arvo = tiedot.get("lokitiedosto");     System.out.println("Avainta lokitiedosto vastasi arvo "  + arvo + ".");   } } © Jukka Harju, Jukka Juslin


Lataa ppt "Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet"

Samankaltaiset esitykset


Iklan oleh Google