HashMap
, TreeMap
, LinkedHashMap
对比HashMap 存储结构: 数组 + 链表 + 红黑树
LinkedHashMap 存储结构 和HashMap 相同,区别是维护一个根据插入顺序保持的双向链表
TreeMap 存储结构: 红黑树
HashMap 无序
LinkedHashMap 根据插入先后顺序确定遍历顺序
TreeMap 有序,根据Key进行比较获取先后顺序
HashMap 迭代
示意图如下:
LinkedHashMap 迭代
TreeMap 迭代
因为TreeMap是红黑树,左孩子 < 根 < 右孩子,
所以按照树的中序遍历方式进行扫描,即先获取树的左孩子,然后是根,最后是右孩子
示意图如下:
HashMap
hashcode
方法,这个问题不太大)TreeMap
HashMap
的碰撞情况LinkedHashMap
HashMap
的使用规则关注小灰灰blog