| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
MultiMap-toteutus javalleharja 07.04.05 09:42 Helppo toteutus C++-tyyliselle multimapille javalle.
/* * Kuten huomata saattaa, java.util.HashMap ja java.util.Vector mahdollistavat moisen tekemisen vain yhden metodin ylikirjoittamisella. * Valitettavasti ei ollut käsillä java 1.5 -kääntäjää, joten tein tämän vanhalla tyylillä. Mikäli tarvetta on, tästä saa pienellä vaivalla geneerisen version. * * Created on Apr 7, 2005 */ package pekka; import java.util.HashMap; import java.util.Iterator; import java.util.Vector; /** * @author mharju */ public class MultiMap extends HashMap { private static final long serialVersionUID=1L; /** * Lisää mappiin uuden arvon. Mikäli arvo löytyy jo mapista, lisätään arvo listan päähän * Mikäli arvoa ei vielä löydy, lisätään uusi lista, johon arvo lisätään * @param key avain, jolle arvo lisätään * @param value lisättävä arvo */ public Object put(Object key, Object value) { Vector v = null; if(this.containsKey(key)) { v = (Vector) this.get(key); } else { v = new Vector(); } v.add(value); return super.put(key, v); } public static void main(String[] args) { // Ja sitten hieman testailua. MultiMap map = new MultiMap(); map.put("kissa", "kehräävä"); map.put("kissa", "loikoileva"); map.put("koira", "naukuva"); map.put("hylje", "makoileva"); Iterator it = map.keySet().iterator(); while( it.hasNext() ) { String key = (String) it.next(); System.out.println("Avain: "+key); System.out.println("Arvo: "+map.get(key).toString()); } } } |
![]() Haku
|