Bagaimana Memeriksa Apakah Ada Kunci di Peta

1. Ikhtisar

Dalam tutorial singkat ini, kita akan melihat cara untuk memeriksa apakah ada kunci di Peta .

Secara khusus, kita akan fokus pada containsKey dan get.

2. berisiKunci

Jika kita melihat JavaDoc untuk Map # containsKey :

Mengembalikan nilai benar jika peta ini berisi pemetaan untuk kunci yang ditentukan

Kita dapat melihat bahwa metode ini adalah kandidat yang cukup bagus untuk melakukan apa yang kita inginkan.

Mari buat peta yang sangat sederhana dan verifikasi isinya dengan containsKey :

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

Sederhananya, containsKey memberi tahu kita apakah peta berisi kunci itu.

3. mendapatkan

Sekarang, get terkadang dapat berfungsi juga, tetapi itu datang dengan beberapa bagasi, tergantung pada apakah implementasi Peta mendukung nilai null atau tidak .

Sekali lagi, lihat Map 's JavaDoc, kali ini untuk Map # put , kita melihat bahwa itu hanya akan memunculkan NullPointerException :

jika kunci atau nilai yang ditentukan adalah null dan peta ini tidak mengizinkan kunci atau nilai null

Sejak beberapa implementasi dari Peta dapat memiliki nilai nol (seperti HashMap ), itu mungkin untuk mendapatkan ke kembali nol meskipun kuncinya hadir.

Jadi, jika tujuan kita adalah untuk melihat apakah sebuah kunci memiliki nilai atau tidak, get akan berhasil:

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

Tetapi, jika kita hanya mencoba untuk memeriksa bahwa kuncinya ada, maka kita harus tetap menggunakan containsKey .

4. Kesimpulan

Pada artikel ini, kami melihat containsKey . Kami juga melihat lebih dekat mengapa berisiko menggunakan get untuk memverifikasi keberadaan kunci.

Seperti biasa, lihat contoh kode di Github.