码迷,mamicode.com
首页 > 其他好文 > 详细

对比hashtable,hashmap,treemap的区别

时间:2018-11-24 20:55:05      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:支持   img   决定   对象   http   它的   tree   服务   tab   

一:hashtable线程安全,不支持null键和值,hashmap支持null键和值,treemap是红黑树实现的,可以通过key的comparotor实现排序,还有原始类型的自然顺序,它的get,remove,add都是logn时间复杂度

二:hashmap 的实现原理,负载因子,容量,多线程导致的循环占用cpu,size不准确

三:技术分享图片

四:用到集合的时候一定要考虑自己创建的对象是否需要从新实现equals和hashcode方法。如果用到hashmap,一定要注意这俩个方法。这俩个都要实现,不能漏一个。

五:linkHashMap 的遍历顺序符合插入的顺序,注意,这种数据结构可以用来实现缓存删除策略,最近最少使用的缓存删除策略。有个构造方法可以实现这种需求

六:treemap就是根据键的顺序决定的,实现comparable或者comparator接口

七:comparato 的实现与eqauls一致

八:hashmap结构

 

技术分享图片

九:hashmap的使用实在第一次使用的时候,没有在构造函数初始化的。

十:hashmap源码:主要的逻辑主要是在putvalue中,大于负载因子*容量就会扩容,而且会扩容2倍。达到一定的值就会转为树

树化的根本问题是安全,如果map遇到攻击就会变成链表,转为树,可以提高性能,避免拖垮服务器

import java.util.LinkedHashMap...

极客时间版权所有: https://time.geekbang.org/column/article/8053

对比hashtable,hashmap,treemap的区别

标签:支持   img   决定   对象   http   它的   tree   服务   tab   

原文地址:https://www.cnblogs.com/hanguocai/p/10013173.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!