HashMap、TreeMap、LinkedHashMap、ConcurrentMap、HashTable之间的比较

已有 59 次阅读2017-6-27 13:48 |个人分类:知识点拓展|系统分类:学习纪录

区别

HashMap

TreeMap

LinkedHashMap

ConcurrentMap

HashTable

线程同步

不支持

(PS:如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力,或者使用ConcurrentHashMap。)

 

 

 

支持

排序

随机(基于哈希表)

默认为升序排列,也可以指定排序的比较器(基于红黑树)

 

 

 

存储方式

键值对

键值对

键值对

原子操作

 

是否允许空值

允许一条记录的键为null,允许多条记录的值为null

 

 

不允许记录的键为null

不允许记录的键或者值为null

键是否允许重复

 

 

值是否允许重复

 

 

遍历

HashMap的遍历速度和他的容量有关

访问速度快

 

LinkedHashMap的遍历速度只和实际数据有关,和容量无关

 

 

选取优先

在Map中,插入、删除和定位元素优先选择

按自然顺序或自定义顺序遍历键,优先选择

 

 

 

继承

Map接口

 

 

ReentrantLock类

Dictionary

安全

线程不安全(是HashMap的轻量级实现)

 

 

线程安全

线程安全

其他

HashCode是对象的散列码,不同对象不同的散列码

 

 

 

 

 


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

doodle 涂鸦板

您需要登录后才可以评论 登录 | 立即注册

Copyright;  ©2015-2017  知了堂学习社区  Powered by  知了堂Edu!     ( 蜀ICP备16011312号-1 )