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

Slides:



Advertisements
Samankaltaiset esitykset
18. Abstraktit tietotyypit
Advertisements

6. Metodit.
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
16. Javan omat luokat.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 6 (osittain) Tiedostot.
Ict1td002: Ohjelmointitaito Kertaus Osio 2 - luokat - ilmentymät - viittaus- ja arvomuuttuja - ilmentymien taulukointi HAAGA-HELIA IltaTiko.
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
© Jukka Harju, 2005 Javan util -pakkaus •Javan util -pakkaus sisältää monia hyödyllisiä luokkia ja rajapintoja. –Kaikki ao luokat ovat pakkauksessa java.util.
Jukka Juslin Poikkeukset ja niiden paikallistaminen * Jukka Juslin * Liittyy oppikirjan lukuun 11.
Taulukot Jukka Juslin © Jukka Juslin 2006.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
22. Taulukot.
Käännösaikaiset virheilmoitukset • Tulee silloin, kun koodissa on jotain sellaista, joka ei ole Javan syntaksin mukaista • Esim. – Syntax error, insert.
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT. LUOKKA JAVA ohjelma koostuu luokista LUOKKA sisältää metodeja molemmat sisältävät attribuutteja eli muuttujia.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Yksinkertaiset graafiset syöttö- ja tulostustoiminnot.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Tietorakenneluokkia 2: HashMap, TreeMap.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
Toiston tekeminen Javalla  Mikä toistorakenne on?  while toistorakenne  do-while toistorakenne  for toistorakenne 1.
TAULUKKO YKSIULOTTEINEN TAULUKKO. TAULUKKO  Taulukon tarkoitus Ohjelmassa tarvitaan paljon samantyyppisiä samaan kohdealueeseen kuuluvia muuttujia Näitä.
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
7. Oliot ja viitteet.
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
String-vertailusta ja Scannerin käytöstä (1/2)
19. Olio-ohjelmointia Javalla
20. Javan omat luokat.
Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia.
Kuinka niitä käsitellään
1 DataOutputStream ja DataInputStream DataOutputStream:lla voidaan tallentaa perustietotyyppien arvoja binäärimuotoiseen tiedostoon DataInputStream:lla.
1 Tietovirrat ja niiden suunnat Tietovirralla on aina suunta Tiedostoon tallentaessa käytetään OutputStream-luokasta perittyjä luokkia Tiedostosta luettaessa.
4. Attribuutit 4.1. Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2.
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Näppäimistöltä lukeminen Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In -luokka.
22. Taulukot.
© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
2. Lisää Java-ohjelmoinnin alkeita
Aakkosnumeerinen tieto Tarkoittaa kaikkea muuta tietoa paitsi laskentaan tarkoitettuja lukuja Muuttujan tietosisältö on siis tekstitietoa Muuttujan tietotyypiksi.
Tiedostojen käsittely
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
Kontrollirakenteet laajemmin
Java - Tietokanta. JDBC=Java database connectivity  ODBC:n kaltainen ohjelmointiliittymä SQL- tietokantoihin  Koostuu Java-kehitysympäristön (esim.
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
Ict02d Johdanto Dynaamiset tietorakenteet –Rakenteiden tilavaraus laajenee/pienenee ajonaikaisesti. –Rakenteita on useita tyyppejä Linkitetty lista Pino.
1 © Jukka Juslin Luokat, attribuutit ja metodit Yleistietoa: seuraavalla koulutusviikolla tarkempi käsittely.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
15. Ohjelmoinnin tekniikkaa
Scalan valmiit kokoelmat. Mikä on kokoelma?  Tietorakenne jonka tehtävänä on pitää kirjaa (useista) tietyn tyyppisistä arvoista. Kokoelman sisältämiä.
16. Javan omat luokat Sisällys Johdanto. Object -luokka: − toString -, equals -, clone - ja getClass -metodit. Comparable -rajapinta: − compareTo.
String-vertailusta ja Scannerin käytöstä (1/2)
7. Oliot ja viitteet.
2. Taulukot.
3. Luokat, oliot ja metodit Java-kielessä (Lausekielinen ohjelmointi I ja II –kursseilla opitun kertausta.)
Millaisia kokoelmia Scala tarjoaa
Aakkosnumeerinen tieto
Aakkosnumeerinen tieto
2. Taulukot.
7. Oliot ja viitteet.
16. Javan omat luokat.
4. Attribuutit.
4. Luokan testaus ja käyttö olion kautta
eli oliotiedostojen käsittely
Esityksen transkriptio:

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

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. 2

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 3 Map asiakkaat = new HashMap (); Map tuotteet = new HashMap (); Map tilit = new HashMap (); mitä arvoja Mappiin laitetaan(luokka) tyhjän Mapin luominen avaimen tyyppi (luokka)

Map-luokan metodeja 4 Map-luokan metodiSelitys V get(K key)Palautetaan Mapista viite avaimella key löytyvään arvoon (tässä olioon). esim. Tili tili1 = tilit.get("Fi06512”); V put(K key, V value)Lisätään Mappiin avaimella key viite parametrina annettuun olioon. Metodi palauttaa viitteen lisättyyn olioon. esim. tilit.put(”Fi09923”, tili5); V remove(K key)Poistetaan Mapista avaimella key löytyvä viite olioon. Metodi palauttaa viitteen poistettuun olioon. esim. tilit.remove(”Fi12233”); Set keySet()Palauttaa Map-rakenteeseen talletetut avaimet Set-tyyppisenä kokoelmana. esim. Set tilinrot = tilit.keySet(); Huom! K = avaimen (Key) luokka-tietotyyppi, V = arvon (Value) luokka-tietotyyppi

Mappiin lisääminen // luo Map-rakenne, jonne talletetaan pankkitilien tietoja Map tilit = new HashMap (); String tilinro; // pankkitilin numero double saldo; // 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 5 Lisätään tilit-Mappiin uusiTili- olio. Olion avaimena tilinro.

Mapin läpikäynti // Mapin tilinumero-avaimet pyydetään keySet-metodilla Set:ksi Set tilinrot = tilit.keySet(); // luo Iterator-tyyppinen i-olio, jolla voidaan läpikäydä // kaikki Set-kokoelman tilinumerot Iterator i = tilinrot.iterator(); String seurTilinro = 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 6

Mapista poistaminen 7 7 String tilinro; // 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.