Skip to content

Viikon 5 tehtävän 7 esimerkkiratkaisu

mluukkai edited this page Dec 1, 2013 · 1 revision

HashMap, TreeMap ja EnumMap toteuttavat siis rajapinnan Map koska abstrakti yliluokka AbstractMap toteuttaa sen. Luokat toteuttavat myös kuvaan merkitsemättömät rajapinnat Serializable ja Cloneable.

Rajapinta Map määrittelee “mappien” toiminnallisuuden, eli kaikki tallettavat avain-arvo-pareja, ja mahdollistavat mm. avainten sekä arvojen läpikäynnin.

Kaikki mapit eroavat huomattavasti sisäiseltä toteutukseltaan. Tehokkain kaikista on EnumMap, mutta se on myös rajoitetuin, avainten on oltava Enumeja. HashMap on keskimääräisissä tapauksissa hieman nopeampi kuin TreeMap. TreeMapin etuna on se, että avain-arvoparit tallentuvat treemapin sisälle avainten mukaan järjestettynä. Järjestys taas määrittyy avaimena olevan luokan luonnollisen järjestyksen, eli compareTo-metodin mukaan ellei treemapin konstruktorissa anneta erilaista järjestyskriteerioa.