ConcurrentMap和HashMap的区别

问题描述

ConcurrentMap和HashMap的区别说的具体点 谢谢 问题补充:khan 写道

解决方案

1。hashMap可以有null的键,concurrentMap不可以有2。hashMap是线程不安全的,在多线程的时候需要Collections.synchronizedMap(hashMap),ConcurrentMap使用了重入锁保证线程安全。3。在删除元素时候,两者的算法不一样。http://sinly.iteye.com/admin/blogs/1270748http://sinly.iteye.com/admin/blogs/1264762
解决方案二:
ConcurrentMap 是线程安全的,而hashMap不是线程安全的,ConcurrentMap的操作都是原子操作,hashMap不是啊!
解决方案三:
引用ConcurrentMap 提供其他原子 putIfAbsent、remove、replace 方法的 Map。它扩展了Map接口,比HashMap多了几个原子操作的方法

时间: 2024-08-02 02:51:28

ConcurrentMap和HashMap的区别的相关文章

C#中Hashtable和HashMap的区别--很详细;

 C#中Hashtable和HashMap的区别--很详细; 参考自                                                 http://www.hd1204.com/article/html/1655.html感谢原创: HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable.可能你觉得HashTable很好用,为什么不用呢?     这里简单分析他们的区别.

Hashtable和HashMap的区别

1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类: 2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的.即是说,在多线程应用程序中,不用专门的操作就安全地可以使用Hashtable了:而对于HashMap,则需要额外的同步机制.但HashMap的同步问题可通过Collections的一个静态方法得到解决: MapCollections.synchronizedMap(Mapm) 这个方法返回一个同步的Map,这个Map

HashMap Hashtable区别

我们先看2个类的源码 HashMap Hashtable实现源码 可见Hashtable 继承自 Dictiionary 而 HashMap继承自AbstractMap Hashtable的put方法如下 public synchronized V put(K key, V value) { // Make sure the value is not null if (value == null) { throw new NullPointerException(); } // Makes su

java中Hashtable和HashMap的区别分析_java

1.Hashtable是Dictionary的子类, 复制代码 代码如下:  public class Hashtable<K,V>     extends Dictionary<K,V>     implements Map<K,V>, Cloneable, java.io.Serializable HashMap: 复制代码 代码如下: public class HashMap<K,V>    extends AbstractMap<K,V>

解析WeakHashMap与HashMap的区别详解_java

WeakHashMap,此种Map的特点是,当除了自身有对key的引用外,此key没有其他引用那么此map会自动丢弃此值,见实例:此例子中声明了两个Map对象,一个是HashMap,一个是WeakHashMap,同时向两个map中放入a.b两个对象,当HashMap  remove掉a 并且将a.b都指向null时,WeakHashMap中的a将自动被回收掉.出现这个状况的原因是,对于a对象而言,当HashMap  remove掉并且将a指向null后,除了WeakHashMap中还保存a外已经

前几天参加了阿里巴巴的电话面试,把他们问的问题都记录了下来,希望对那些正准备面试的人有用。

一.String,StringBuffer, StringBuilder 的区别是什么?String为什么是不可变的? 答:String是不可变的,StringBuffer是可变的:StringBuffer是线程安全的,StringBuilder是非线程安全的. 因而在大部分情况下字符串的拼接速度为:StringBuilder>StringBuffer>String 解释如下: 因为String是不可变的(通过ide的debugger可以发现其属性大都为final类型),因此每次对其操作改变其

Java基础-18总结Map,HashMap,HashMap与Hashtable区别,Collections工具类

你需要的是什么,直接评论留言. 获取更多资源加微信公众号"Java帮帮" (是公众号,不是微信好友哦) 还有"Java帮帮"今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:Map(掌握) (1)将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.  (2)Map和Collection的区别? A:Map 存储的是键值对形式的元素,键唯一,值可以重复.夫妻对

HashMap和HashSet的区别

HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整.HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合.collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口.它们有各自的特点,Set的集合里不允许对象有重复的值,List允许有重复,它

HashMap 和 HashSet的区别_java

HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整.HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合.collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口.它们有各自的特点,Set的集合里不允许对象有重复的值,List允许有重复,它