So überprüfen Sie, ob ein Schlüssel in einer Karte vorhanden ist

1. Übersicht

In diesem kurzen Tutorial werden Möglichkeiten untersucht, um zu überprüfen, ob ein Schlüssel in einer Karte vorhanden ist .

Insbesondere konzentrieren wir uns auf ContainsKey und erhalten.

2. enthältKey

Wenn wir uns das JavaDoc für Map # includesKey ansehen :

Gibt true zurück, wenn diese Zuordnung eine Zuordnung für den angegebenen Schlüssel enthält

Wir können sehen, dass diese Methode ein ziemlich guter Kandidat ist, um das zu tun, was wir wollen.

Lassen Sie uns eine sehr einfache Karte erstellen und ihren Inhalt mit includesKey überprüfen :

@Test public void whenKeyIsPresent_thenContainsKeyReturnsTrue() { Map map = Collections.singletonMap("key", "value"); assertTrue(map.containsKey("key")); assertFalse(map.containsKey("missing")); }

Einfach ausgedrückt, enthält enthält Schlüssel, ob die Karte diesen Schlüssel enthält.

3. bekommen

Jetzt kann get manchmal auch funktionieren, aber es wird mit etwas Gepäck geliefert, je nachdem, ob die Map- Implementierung Nullwerte unterstützt oder nicht .

Auch ein Blick auf Map ‚s JavaDoc, diesmal für Map # put , sehen wir , dass es nur einen werfen Nullpointer :

Wenn der angegebene Schlüssel oder Wert null ist und diese Zuordnung keine Nullschlüssel oder -werte zulässt

Da einige Implementierungen von Map kann NULL - Werte haben (wie HashMap ), dann ist es möglich , get zu Rückkehr null , obwohl der Schlüssel vorhanden ist.

Wenn unser Ziel also darin besteht, festzustellen, ob ein Schlüssel einen Wert hat oder nicht, funktioniert get :

@Test public void whenKeyHasNullValue_thenGetStillWorks() { Map map = Collections.singletonMap("nothing", null); assertTrue(map.containsKey("nothing")); assertNull(map.get("nothing")); }

Aber, wenn wir nur zu prüfen , versuchen , dass der Schlüssel vorhanden ist , dann sollten wir mit Stick containsKey .

4. Fazit

In diesem Artikel haben wir uns mit includesKey befasst . Wir haben uns auch genauer angesehen, warum es riskant ist, get zur Überprüfung der Existenz eines Schlüssels zu verwenden.

Schauen Sie sich wie immer die Codebeispiele auf Github an.