对jdk-hashmap肤浅的了解了一下,先记下,以后慢慢补充。
一 基本数据结构
hashmap是数组、列表、红黑树的结合。数组:当知道下标时,插入、删除、查找都很快。链表:当node对应下标(hash&length-1)相同时,将node插入数组,当长度很长时,操作慢。红黑树:当链表过长时,将链表转成红黑树,比链表快,也比链表复杂。
1> Node
hashmap是数组、列表、红黑树的结合,三者的数据内容为Node,如上图所示。Node包含hash,key,value,next四个属性,分别如下:
hash:哈希值,
key:键,映射值-value
valaue:与key组成 <key,value>键值对。存储map.put(key, value)中的key与value
next:当hash&length-1值相同时,指向下一个节点。下文细讲
2> TreeNode
还不太懂
二 基本操作