Hal pertama yang perlu Anda ketahui adalah bahwa HashSetbertindak seperti a Set, yang berarti Anda menambahkan objek Anda langsung ke HashSetdan tidak dapat berisi duplikat. Anda cukup menambahkan nilai Anda secara langsung HashSet.
Namun, HashMapadalah Maptipe. Itu berarti setiap kali Anda menambahkan entri, Anda menambahkan pasangan nilai kunci.
Dalam HashMapAnda dapat memiliki nilai duplikat, tetapi bukan kunci duplikat. Di HashMapentri baru akan menggantikan yang lama. Entri terbaru akan berada di HashMap.
Memahami Tautan antara HashMap dan HashSet:
Ingat, HashMaptidak boleh memiliki kunci duplikat. Di belakang layar HashSetmenggunakan a HashMap.
Saat Anda mencoba menambahkan objek apa pun ke dalam HashSet, entri ini sebenarnya disimpan sebagai kunci di HashMap- sama HashMapyang digunakan di belakang layar HashSet. Karena dasar ini HashMapmembutuhkan 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 HashMapbawahnya. Namun, HashMaptidak mendukung duplikat. Karenanya, HashSetmasih 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:
HashMapmemungkinkan duplikat values, tetapi tidak keys.
HashSettidak boleh berisi duplikat.
Untuk bermain dengan apakah penambahan suatu objek berhasil diselesaikan atau tidak, Anda dapat memeriksa booleannilai yang dikembalikan saat Anda memanggil .add() dan melihat apakah itu kembali trueatau false. Jika dikembalikan true, itu sudah dimasukkan.
HashMapuntuk melihat apakahkeysudah ada sebelum memintaputdukunganmap?