Frage zu Hashmap in Java?

1 Antwort

Deine Vermutung ist richtig. Wirf die Variable list raus. Im else-Fall gib in put() als zweites Argument „new LinkedList<String>()“ an. Dann geht es weiter wie im then-Fall:

nameWithCantonsMap.get(values[1]).add(values[0]);

Solcher Code ist typisch, wenn eine Map eine aggregierende Klasse als Value hat. Ich schreibe da immer dasselbe Schema:

// 1. Eintrag ggf. erzeugen:
if ( !myMap.containskey(key) )
    myMap.put( key, new ... /* List, Map, Set, ... */ );
// 2. Wert anhängen:
myMap.get( key ).add( value );

Das sind zwar zwei Zugriffe auf die Map, aber von einer Map darf man erwarten, dass das flott genug geht.