Hvordan sjekke om en nøkkel finnes på et kart

1. Oversikt

I denne korte opplæringen vil vi se på måter å sjekke om det finnes en nøkkel i en Kart.

Spesielt vil vi fokusere på inneholder nøkkel og få.

2. inneholder nøkkel

Hvis vi tar en titt på JavaDoc for Kart # inneholder nøkkel:

Returnerer sant hvis dette kartet inneholder en kartlegging for den angitte nøkkelen

Vi kan se at denne metoden er en ganske god kandidat for å gjøre det vi vil.

La oss lage et veldig enkelt kart og verifisere innholdet med inneholder nøkkel:

@Test offentlig ugyldig nårKeyIsPresent_thenContainsKeyReturnsTrue () {Map map = Collections.singletonMap ("key", "value"); assertTrue (map.containsKey ("nøkkel")); assertFalse (map.containsKey ("mangler")); }

For å si det enkelt, inneholder nøkkel forteller oss om kartet inneholder den nøkkelen.

3.

Nå, kan noen ganger også fungere, men det kommer med litt bagasje, avhengig av om Kart implementering støtter nullverdier.

Igjen, ta en titt på Kart’S JavaDoc, denne gangen for Kart # put, ser vi at det bare vil kaste a NullPointerException:

hvis den angitte nøkkelen eller verdien er null og dette kartet tillater ikke nullnøkler eller verdier

Siden noen implementeringer av Kart kan ha nullverdier (som HashMap), er det mulig for å returnere null selv om nøkkelen er til stede.

Så hvis målet vårt er å se om en nøkkel har en verdi eller ikke, da skal jobbe:

@Test offentlig ugyldig nårKeyHasNullValue_thenGetStillWorks () {Map map = Collections.singletonMap ("ingenting", null); assertTrue (map.containsKey ("ingenting")); assertNull (map.get ("ingenting")); }

Men hvis vi bare prøver å kontrollere at nøkkelen eksisterer, bør vi holde oss til inneholder nøkkel.

4. Konklusjon

I denne artikkelen så vi på inneholder nøkkel. Vi har også sett nærmere på hvorfor det er risikabelt å bruke for å bekrefte at en nøkkel eksisterer.

Som alltid, sjekk ut kodeeksemplene på Github.


$config[zx-auto] not found$config[zx-overlay] not found