- HashMap本身的算法保证,会使key hash之后下标的分布尽可能的分散
- 2倍扩容的做法是为了保证分散性,扩容完成之后,要把原来的节点移动一下,链表的位置要么是原来的位置不动,要么是原来的位置+oldCap
- 位置相同时,后面的节点用链表挂在下面,当链表长度超过8个时,将链表转为用红黑树存储(jdk1.8之后)
- get的时候回根据hash和key共同决定取哪个,先看hash是否相同,再看key是不是一样
HashMap中几点需要注意的地方
最新推荐文章于 2024-09-05 14:47:22 发布