首页天道酬勤Redis和hashmap哪个快,hashtable是谁的子类

Redis和hashmap哪个快,hashtable是谁的子类

张世龙 05-05 19:49 105次浏览

线程安全HashMap线程不安全,HashTable线程安全

hashMap还可以通过以下代码转换为线程安全实现:

HashMap test=new HashMap (; mapsynchronizedmap=collections.synchronized map (test; 2 .效率

线程安全的hashTable效率低下,因为每次get和put操作都会添加同步关键字。

是否接受空值

hashMap接受空值作为key和value。 hashMap不能接受空值作为key或value。 附加源代码:

hashMap:

现在,如果hashMap中的key==null,则可以看到直接将0指定为hash值

hashTable:

如果key或value==null,则可以看到会直接触发NullPointerException。

那么,为什么这样实现呢?

网上有以下语言。

由于ConcurrentHashmap和Hashtable支持并发,因此当lcddfj获取get(k )中相应的value、获取null、其为put (k,v )时value为null 支持并发的Map调用了m.contains(key )和m.get (key )。 m可能已经不是了。

但是我还是觉得不是。 没有回答key为什么不能为空的问题。 这一点以后继续考虑。

迅雷下载不了版权方要求,解决迅雷应版权要求下载限制