首页 > 其他 > 详细

Hashtable、HashMap、TreeMap区别

时间:2019-09-02 09:11:28      阅读:105      评论:0      收藏:0      [点我收藏+]

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11444013.html

 

Hashtable

Hashtable是早期Java类库提供的一个哈希表实现,本身是同步的,不支持null键和值,由于同步导致的性能开销,所以已经很少被推荐使用。

 

HashMap

HashMap是应用更加广泛的哈希表实现,行为上大致上与Hashtable一致,主要区别在于HashMap不是同步的,支持null键和值等。通常情况下,HashMap进行put或者get操作,可以达到常数时间的性能,所以它是绝大部分利用键值对存取场景的首选,比如,实现一个用户ID和用户信息对应的运行时存储结构。

PS. HashSet底层是通过HashMap实现的

技术分享图片

 

TreeMap

TreeMap则是基于红黑树的一种提供顺序访问的Map,和HashMap不同,它的get、put、remove之类操作都是O(log(n))的时间复杂度,具体顺序可以由指定的Comparator来决定,或者根据键的自然顺序来判断。

技术分享图片

PS. TreeSet底层是通过TreeMap来实现的

技术分享图片

 

Hashtable、HashMap、TreeMap区别

原文:https://www.cnblogs.com/agilestyle/p/11444013.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!