Hal pertama yang perlu Anda ketahui adalah bahwa HashSet
bertindak seperti a Set
, yang berarti Anda menambahkan objek Anda langsung ke HashSet
dan tidak dapat berisi duplikat. Anda cukup menambahkan nilai Anda secara langsung HashSet
.
Namun, HashMap
adalah Map
tipe. Itu berarti setiap kali Anda menambahkan entri, Anda menambahkan pasangan nilai kunci.
Dalam HashMap
Anda dapat memiliki nilai duplikat, tetapi bukan kunci duplikat. Di HashMap
entri baru akan menggantikan yang lama. Entri terbaru akan berada di HashMap
.
Memahami Tautan antara HashMap dan HashSet:
Ingat, HashMap
tidak boleh memiliki kunci duplikat. Di belakang layar HashSet
menggunakan a HashMap
.
Saat Anda mencoba menambahkan objek apa pun ke dalam HashSet
, entri ini sebenarnya disimpan sebagai kunci di HashMap
- sama HashMap
yang digunakan di belakang layar HashSet
. Karena dasar ini HashMap
membutuhkan pasangan nilai kunci, nilai dummy dibuat untuk kita.
Sekarang ketika Anda mencoba memasukkan objek duplikat lain ke dalam objek yang sama HashSet
, itu akan mencoba untuk memasukkannya lagi sebagai kunci di HashMap
bawahnya. Namun, HashMap
tidak mendukung duplikat. Karenanya, HashSet
masih akan menghasilkan hanya satu nilai dari tipe itu. Sebagai catatan tambahan, untuk setiap kunci duplikat, karena nilai yang dihasilkan untuk entri kita di HashSet adalah nilai acak / tiruan, kunci tersebut tidak diganti sama sekali. itu akan diabaikan karena menghapus kunci dan menambahkan kembali kunci yang sama (nilai dummy adalah sama) tidak akan masuk akal sama sekali.
Ringkasan:
HashMap
memungkinkan duplikat values
, tetapi tidak keys
.
HashSet
tidak boleh berisi duplikat.
Untuk bermain dengan apakah penambahan suatu objek berhasil diselesaikan atau tidak, Anda dapat memeriksa boolean
nilai yang dikembalikan saat Anda memanggil .add()
dan melihat apakah itu kembali true
atau false
. Jika dikembalikan true
, itu sudah dimasukkan.
HashMap
untuk melihat apakahkey
sudah ada sebelum memintaput
dukunganmap
?