Hashtable和HashMap: null值的关键区别
Hashtable和HashMap: 对待null值大不同
有一种说法是'Hashtable 允许 null 值作为 key 和 value而 hashMap 不可以',这种说法只说对了一半。
实际上,Hashtable既不允许null值作为key,也不允许null值作为value。如果尝试将null作为key或value存储在Hashtable中,会抛出NullPointerException。
而HashMap允许一个null值作为key,允许多个null值作为value。 这是因为HashMap使用了哈希函数来确定键值对的存储位置,而哈希函数对null值进行了特殊处理。
总结:
- Hashtable: 不允许null key,不允许null value* HashMap: 允许一个null key,允许多个null value
需要注意的是:
尽管HashMap对null值有更高的容忍度,但在多线程环境下使用HashMap仍然需要进行同步处理,因为它本身不是线程安全的。 为了保证线程安全,可以使用ConcurrentHashMap。
原文地址: https://www.cveoy.top/t/topic/cqgC 著作权归作者所有。请勿转载和采集!