区别
- HashTable 与 HashMap 的区别主要在于 HashTable 是同步的,而 HashMap 不是同步的。
- HashTable 在 get(), put(), remove() 等方法都加上了 synchronized 关键字进行同步。这样的效率确实不高。
- HashMap 如果想使用同步版的,可以使用 Collections.synchronizedMap(new HashMap()) 来获取同步版。具体实现也就是添加了一个 Object,然后调用 get(), put() 等方法时都先锁定这个 Object。
误区
- 同步的不代表是线程安全的,比如下面的代码。由于这个事务是由多个操作组成的,如果一个线程在执行完判断 containKey 后另外一个线程已经插入了数据,这时再执行就要杯具了。
public void operate() {
if (!map.containKey("something")) {
map.put("key", "value");
}
}
不过如果是 ConcurrentHashMap 针对这种情况作了处理,它的父接口 ConcurrentMap 提供了一个 putIfAbsent 方法,这个方法也是原子操作的。
分享到:
相关推荐
记得刚毕业那会准备面试,看过不少面试题,里面有个说出HashMap和HashTable不同的题目,我那会面试的时候也遇到不少次这个问题,还隐约记得当时的回答是这样的: HashTable是比较旧的版本;HashTable是线程安全的,...
hashMap和hashTable的区别,大家可以下载学习学习。
Java集合专题总结:HashMap 和 HashTable 源码学习和面试总结
hashmap和hashtable的区别 HashMap和Hashtable都实现了Map接口,但决定用哪一个之前先要弄清楚它们之间的分别。主要的区别有:线程安全性,同步(synchronization),以及速度。 1. HashMap几乎可以等价于Hashtable,...
hashmap和hashtable的区别
今天小编就为大家分享一篇关于HashMap和HashTable底层原理以及常见面试题,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
hashMap和Hashtable的区别1
HashTable不支持空键值对! 而HashMap支持空键值对!
11.HashMap和HashTable的区别.avi
HashMap和Hashtable的区别Java开发Java经验技巧共2页.pdf.zip
HashMap和HashTable区别共2页.pdf.zip
初级程序员面试经常问道的问题,HashMap与HashTable区别,希望有帮助
Java面试题11.HashMap和HashTable的区别.mp4
HashMap和Hashtable都实现了Map接口 B. HashMap是非synchronized,而Hashtable是synchronized C. HashTable使用Enumeration,HashMap使用Iterator D. HashMap允许将 null 作为一个 entry 的 key 或者 value,而 ...
HashMap、HashTable和HashSet是Java中常用的数据结构,它们的底层实现原理以及区别如下:HashMap底层实现原理: HashMap基于哈希表(HashTable)实现,它通过散列算法将键值对映射到数组中。在HashMap中,每个键值对...
HashMap和HashTable的区别?但是如果想线程安全有想效率高?
本文主要介绍HashMap 和 Hashtable的区别,这里整理了相关资料并详细介绍了HashMap 和 Hashtable的区别及其工作原理和使用方法,有需要的朋友可以看一下
本篇文章主要介绍了java中HashMap和Hashtable的区别,具有一定的参考价值,有需要的可以了解一下。
hashmap与hashtable区别 主要是应用于存值的数值对
NULL 博文链接:https://qiaolevip.iteye.com/blog/2094447