HashMap
, TreeMap
, LinkedHashMap
对比HashMap 存储结构: 数组 + 链表 + 红黑树数组
LinkedHashMap 存储结构 和HashMap 相同,区别是维护一个根据插入顺序保持的双向链表安全
TreeMap 存储结构: 红黑树数据结构
HashMap 无序多线程
LinkedHashMap 根据插入前后顺序肯定遍历顺序学习
TreeMap 有序,根据Key进行比较获取前后顺序.net
HashMap 迭代线程
示意图以下:code
LinkedHashMap 迭代blog
TreeMap 迭代排序
由于TreeMap是红黑树,左孩子 < 根 < 右孩子,
因此按照树的中序遍历方式进行扫描,即先获取树的左孩子,而后是根,最后是右孩子
示意图以下:
HashMap, LinkedHashMap, TreeMap 非线程安全,所以都不适用于多线程环境下
但愿有序的Map,考虑采用 LinkedHashMap, TreeMap
HashMap
hashcode
方法,这个问题不太大)TreeMap
HashMap
的碰撞状况LinkedHashMap
HashMap
的使用规则扫一扫二维码,关注小灰灰blog