HashMap Methode "get()"-Problem

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:
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.
 
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.
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben