Bilmeniz gereken ilk şey, HashSeta gibi davranmasıdır Set, yani nesnenizi doğrudan eklediğiniz anlamına gelir HashSetve kopyaları içeremez. Sadece değerinizi doğrudan içine ekleyin HashSet.
Ancak, HashMapbir Maptürüdür. Bu, her giriş eklediğinizde bir anahtar / değer çifti eklediğiniz anlamına gelir.
İçinde HashMapyinelenen değerleriniz olabilir, ancak yinelenen anahtarlar olamaz. Gelen HashMapyeni girdinin eskisinin yerini alacaktır. En son giriş,HashMap .
HashMap ve HashSet arasındaki Bağlantıyı Anlama:
Unutmayın, HashMapyinelenen anahtarlar olamaz. Sahne arkasında HashSetbir kullanır HashMap.
A içine herhangi bir nesne eklemeye çalıştığınızda HashSet, bu giriş aslında sahnenin arkasında kullanılanla HashMapaynı HashMapolan bir anahtar olarak saklanır HashSet. Bu temelde yatan HashMapbir anahtar / değer çiftine ihtiyaç duyduğundan, bizim için bir kukla değer üretilir.
Şimdi aynı nesneyi başka bir yinelenen nesne eklemeye çalıştığınızda HashSet, yine HashMapaltında yatan bir anahtar olarak eklemeye çalışacaktır . Ancak, HashMapkopyaları desteklemez. Bu nedenle,HashSet yine de bu türden yalnızca bir değere sahip olunur. Bir yan not olarak, her yinelenen anahtar için, HashSet'e girişimiz için oluşturulan değer rastgele / kukla bir değer olduğundan, anahtar hiç değiştirilmez. anahtarın çıkarılması ve aynı anahtarın (kukla değer aynıdır) eklenmesi hiç mantıklı olmadığı için yok sayılır.
Özet:
HashMapyinelemeye izin verir values, ancak izin vermez keys.
HashSetkopyalar içeremez.
Bir nesnenin eklenmesi başarıyla tamamlandı olup olmadığını oynamak ya da olmamak kontrol edebilirsiniz booleanAradığınızda döndürülen değeri .add() ve döndürür olmadığını görmek trueveya false. İade ederse true, bu yerleştirilmiştir.
HashMapolmadığını görmek içinkeyzaten çağırmadan önce var olanputdesteğindemap?