1 / 7

Map -luokka

Map -luokka. Mikä M ap on? Mapin esittely ja luonti Map -luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen. Mikä Map on?. Map on hajautustauluksi kutsuttu tietorakenne, johon tiedot tallennetaan avain-arvo -pareina (Key- V alue pairs ).

myra-snyder
Download Presentation

Map -luokka

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Map-luokka Mikä Map on? Mapin esittely ja luonti Map-luokan metodeja Mappiin lisääminen Mapin läpikäynti Mapista poistaminen

  2. Mikä Map on? • Map on hajautustauluksi kutsuttu tietorakenne, johon tiedot tallennetaan avain-arvo-pareina (Key-Value pairs). • Mapin avaimet ja arvot voivat olla mitä tahansa olioita. • Esimerkki avain-arvo-pareista: • tilinumero – Tili-luokan olio • tuotekoodi – Tuote-luokan olio • asiakastunnus – Asiakas-luokan olio • Taulukossa (Array) ja listassa (List) tiedot löytyvät paikkanumeron eli indeksin perusteella, mutta Mapissa tiedot löytyvät sisällön/avaimen perusteella. Esim. pankkitilin tiedot löytyvät Map-rakenteesta tilinumero-avaimen perusteella. Ja tuotteen tiedot löytyvät Map-rakenteesta tuotekoodi-avaimen perusteella.

  3. Mapin esittely ja luonti • Ohjelmaan lisätään import java.util.Map; import java.util.HashMap; • Pankkitilit tilinumero-avaimen mukaan • Tuotteet tuotekoodi-avaimen mukaan • Asiakkaat asiakastunnus-avaimen mukaan Map<String,Tili> tilit = newHashMap<String,Tili>(); Map<Integer,Tuote> tuotteet = newHashMap<Integer,Tuote>(); Map<String,Asiakas> asiakkaat = newHashMap<String,Asiakas>(); avaimen tyyppi (luokka) mitä arvoja Mappiin laitetaan(luokka) tyhjän Mapin luominen

  4. Map-luokan metodeja Huom! K = avaimen (Key) luokka-tietotyyppi, V = arvon (Value) luokka-tietotyyppi

  5. Mappiin lisääminen // luo Map-rakenne, jonne talletetaan pankkitilien tietoja Map<String,Tili> tilit = newHashMap<String,Tili>(); Stringtilinro; // pankkitilin numero doublesaldo; // pankkitilin saldo System.out.print("Anna pankkitilin numero: "); tilinro = input.nextLine(); System.out.print("Anna pankkitilin saldo: "); saldo = input.nextDouble(); // input.nextLine() Tili uusiTili = new Tili(tilinro, saldo); // luo uusi Tili-olio tilit.put(tilinro, uusiTili); // jos listasta löytyy jo tili-olio // samalla tilinrolla, vanha tili-olio tuhoutuu, kun uusi // lisätään Lisätään tilit-Mappiin uusiTili-olio. Olion avaimena tilinro. 5

  6. Mapin läpikäynti • // Mapin tilinumero-avaimet pyydetään keySet-metodilla Set:ksi • Set<String> tilinrot = tilit.keySet(); • // luo Iterator-tyyppinen i-olio, jolla voidaan läpikäydä • // kaikki Set-kokoelman tilinumerot • Iterator<String> i = tilinrot.iterator(); • StringseurTilinro = null; // seuraava Tilinro • Tili seurTili = null; // seuraava Tili-olio • while (i.hasNext()) { // jos löytyy vielä seuraava tilinro • seurTilinro = i.next(); • seurTili = tilit.get(seurTilinro); • System.out.println(seurTili); • } • // HashMap tallentaa tilit-rakenteeseen tili-oliot //satunnaisessa järjestyksessä. Tämä näkyy myös tulostuksessa. Käydään iteraattorin avulla kaikki tilinrot läpi ja tulostetaan tilien tiedot

  7. Mapista poistaminen • Stringtilinro; // pankkitilin tilinumero • Tili poistettuTili= null; // apumuuttuja • System.out.println("Syötä poistettavan pankkitilin tilinro:"); • tilinro= input.nextLine(); • poistettuTili = tilit.remove(tilinro); • if(poistettuTili != null){ // jos poistettava tili löytyi • System.out.println("Tileistä poistettu seuraava tili:"); • System.out.println("Tilinro: "+poistettuTili.getNumero()); • System.out.println("Saldo: "+poistettuTili.getSaldo()); • } else { • System.out.println("Tiliä "+tilinro+" ei löydy tileistä."); • } poistetaan tilit-Mappista viite tili-olioon. Poistettavan tilin avain saadaan parametrina. 7

More Related