den gleichen Schlüssel zweimal in der Karte hinzufügen

7

Ich habe an Map s geforscht und festgestellt, dass die Größe der Map gleich bleibt, wenn ich denselben Schlüssel zweimal absichtlich hinzufüge. Was ist der technische Grund dafür?

%Vor%

Code zum Abrufen ...

%Vor%

Das Ergebnis, das ich bekomme:

%Vor%     
user1579492 06.08.2012, 16:18
quelle

3 Antworten

22

Der Map-Vertrag besagt, dass Schlüssel eindeutig sein müssen. Wenn Sie also einem vorhandenen Schlüssel einen neuen Wert zuweisen, überschreibt er den Wert des vorhandenen Eintrags und erstellt keinen neuen Eintrag:

  

Ein Objekt, das Schlüsselwerten Werte zuordnet. Eine Karte darf keine doppelten Schlüssel enthalten. Jeder Schlüssel kann höchstens einem Wert zugeordnet werden.

Sie können auch überprüfen Karte # put () javadoc (Hervorhebung von mir):

  

Ordnet den angegebenen Wert dem angegebenen Schlüssel in dieser Map zu (optionale Operation). Wenn die Map zuvor eine Zuordnung für den Schlüssel enthielt, wird der alte Wert durch den angegebenen Wert ersetzt. (Eine Map m soll genau dann eine Zuordnung für einen Schlüssel k enthalten, wenn m.containsKey ( k) würde wieder wahr werden.)

    
assylias 06.08.2012 16:19
quelle
2

Eine Standard Java Map kann nur einen Wert pro Schlüssel haben. Beachten Sie, dass der Wert eine Auflistung sein kann und Sie daher mehrere Werte pro Schlüssel effektiv speichern können.

Wenn Sie mehrere identische Schlüssel in einer Karte haben möchten, gibt es verschiedene Lösungen. Siehe die Guava Multimap , z Beispiel.

    
Brian Agnew 06.08.2012 16:26
quelle
0

Wenn der neue Schlüssel mit einem der vorhandenen Schlüssel übereinstimmt, wird der Wert in der Karte überschrieben.

    
Akhil Dev 06.08.2012 16:21
quelle

Tags und Links