Neden ConcurrentHashMap null anahtarlarını ve değerlerini nasıl korur?
ConcurrentHashMap JavaDoc şöyle der:
HashMap
bu sınıfın aksineHashtable
gibi ama yokdeğilnull
anahtar ya da bir değer olarak kullanılır.
Benim sorum şu: neden?
2. soru: neden karma tablo boş izin vermez?
Veri saklamak için HashMaps çok kullandım. Ama ConcurrentHashMap değiştirilirken NullPointerExceptions nedeniyle sıkıntı içine birkaç kez aldım.
CEVAP
From the author of ConcurrentHashMap
himself (Doug Lea):
Null asıl nedeni ConcurrentMaps giremez (ConcurrentHashMaps, ConcurrentSkipListMaps) belirsizlikler olduğunu eşzamanlı olmayan haritalarda zar zor tolere edilebilir olabilir. ağırladı. Ana bir
map.get(key)
null
verir. anahtar açıkça haritalarnull
vs için anahtar olup olmadığını tespit edebilir. eşleştirilmiş. Eşzamanlı olmayan bir harita, bu üzerinden kontrol edebilirsinizmap.contains(key)
, ama eş zamanlı bir harita değişmiş olabilir arasında çağırır.
Neden ve'boş ve tanımsız arasında...
Nasıl değişken olup olmadığını belirle...
MVC, nasıl bir dize neden iade edeyim ...
Nasıl ve/veya neden Git daha iyi SVN g...
Toplamalar ve Bakla nedir ve nasıl/ned...