hashmap 最多允许一条键为 null吗

img

img


hashmap 最多允许一条记录的键为 null吗?111111111111111111111111111111

是的,hashmap只能允许一个键为空,如果存多个为空的键,则值会覆盖掉,hashtable则一个都不允许为空

是的啊,因为键唯一

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/725947
  • 除此之外, 这篇博客: 社招三年后端21连问中的 13.4 HashMap是线性安全的嘛?如何保证安全? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • HashMap不是线程安全的,多线程下扩容死循环。可以使用HashTable、Collections.synchronizedMap、以及 ConcurrentHashMap 可以实现线程安全。

    • HashTable 是在每个方法加上 synchronized 关键字,粒度比较大;
    • Collections.synchronizedMap 是使用 Collections 集合工具的内部类,通过传入 Map 封装出一个 SynchronizedMap 对象,内部定义了一个对象锁,方法内通过对象锁实现;
    • ConcurrentHashMap 在jdk1.7中使用分段锁,在jdk1.8中使用CAS+synchronized。