HashMap Methode "get()"-Problem

Diskutiere HashMap Methode "get()"-Problem im Allgemeine Java-Themen Bereich.
X

Xyz1

Na-gut - je nachdem wie man das sieht. ;)

(Ein leerer String als Schlüsseln wäre ja auch denkbar)
 
Wurstkopp

Wurstkopp

Ja, null ist sowohl gültiger Schlüssel als auch Wert.


Gibt deshalb aber trotzdem keine Schlüssel ohne Wert :)

Java:
HashMap<String, String> m = new HashMap<>();

m.put("a", null);
m.put("b", null);
m.put(null, null);

System.out.println(m.keySet()); // => [null, a, b]
System.out.println(m.containsKey("a")); // => true

Tatsächlich schon. Sollte man aber imo eher nicht so verwenden.
 
Zuletzt bearbeitet:
X

Xyz1

@Wurstkopp Es ging um die Frage, ob eine Map mit null-Werten/-Schlüsseln leer ist oder nicht. Dass man das eher nicht so verwenden sollte das liegt absolut auf der Hand.
 
mrBrown

mrBrown

Java:
HashMap<String, String> m = new HashMap<>();

m.put("a", null);
m.put("b", null);
m.put(null, null);

System.out.println(m.keySet()); // => [null, a, b]
System.out.println(m.containsKey("a")); // => true

Tatsächlich schon. Sollte man aber imo eher nicht so verwenden.
Ich bin mir nicht sicher, ob das jetzt eine Bestätigung oder der Versuch eines Widerspruchs ist, aber in deinem Beispiel gibt es drei Schlüssel (null, a, b), und zu jedem der Schlüssel einen Wert (null, null, null)

m.containsValue(null) würde vollkommen korrekt true zurückliefern, genauso wie m.values() eine Collection mit drei Elementen liefert.

Also: keine Schlüssel ohne Wert, keine Werte ohne Schlüssel, sondern immer beides zusammen.
 
mrBrown

mrBrown

Naja gut. "Ohne Wert" kann man aber auch anders interpretieren.
Wenn man null als "ohne Wert/Schlüssel" interpretiert, kommt man spätestens bei {null: null} an die Grenzen. Da hat man dann plötzlich ein "Etwas" in der Map, was weder Schlüssel noch Wert hat, aber trotzdem drin liegt.
 
Wurstkopp

Wurstkopp

Wenn mir jemand sagt, die Variable hat "keinen Wert", interpretiere ich das als "null". Aber hier geht es jetzt nur noch um Haarspalterei, also lassen wir das.
 
Thema: 

HashMap Methode "get()"-Problem

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben