对比hashtable,hashmap,treemap的区别
Posted hanguocai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对比hashtable,hashmap,treemap的区别相关的知识,希望对你有一定的参考价值。
一: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的区别的主要内容,如果未能解决你的问题,请参考以下文章
Java 对比HashtableHashmapTreemap有什么不同?(正在整理学习中)
万字长文|Hashtable源码深度解析以及与HashMap的区别
从Java源码的角度来分析HashMap与HashTable的区别