HashMap Value (List) update ohne neu einzufügen?

  • Hey Leute,


    ich hab mir überlegt ob es möglich wäre eine Value vom Typ ArrayList in einer HashMap zu updaten ohne die aktualisierte Liste dann wieder in die HashMap zu setzten.


    Also so ist der normale Weg:


    Code
    1. HashMap<Integer, ArrayList<String>> map = null;
    2. ArrayList<String> arrayList = map.get(20);
    3. arrayList.add("Test Message");
    4. map.put(20, arrayList);


    Und nun frage ich mich wäre es möglich eine Value List zu updaten ohne den obigen zusätzlichen Schritt?

    Etwa so:

    Code
    1. HashMap<Integer, ArrayList<String>> map = null;
    2. HashMap<Integer, ArrayList<String>> updatedValueMap = map.?????


    Grüße Maxi

  • Wenn du die Objekt Value in einer Map updaten willst, kannst du das einfach machen, ohne diese dann wieder zurück zu schreiben.

    Code
    1. Map<Integer, ArrayList<String>> map = new HashMap<>();
    2. ArrayList<String> arrayList = map.get(20);
    3. arrayList.add("Test Message");

    Dies funktioniert durch die Pointer die auf das ArrayList Objekt zeigen. Wenn du mal den Debug Modus in deiner IDE startest, siehst du, dass arrayList und der 20te Eintrag in deiner Map die selbe Id haben.

  • Also ich programmiere schon lange aber, dass das so auch in der HashMap selbst geändert wird scheint an mir vorbeigegangen zu sein.


    Nochmal ums für mich Langsamdenker zu verdeutlichen wenn ich einfach die ArrayList über get aus der HashMap aufrufe wird das Ganze auch in der HashMap selbst geändert?


    Nunja habs grad mal getestet irgendwie hat das in meinem Kopf keinen Sinn ergeben, weil du schließlich die ArrayList aus der Map holst und aber woher soll die ArrayList dann wissen das es eigentlich noch in der Map ist?


    Naja Rätsel gelöst xD

    Danke für die Antworten auf eine so unnötige Frage :S