![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
Donsion_CN
这个作者很懒,什么都没留下…
展开
-
HashMap的put方法
根据key通过哈希算法与与运算得出数组下标 如果数据下标位置元素为空,则将key种value封装为Entry对象(JDK7中是Entry对象,JDK8中的Node对象),并放入该位置 如果数组下标位置元素不为空,则要分情况讨论 如果是JDK1.7,则先判断是否需要扩容,如果要扩容就先进行扩容,如果不用扩容就生成Entry对象,并使用头插法添加到当前位置的链表中 如果是JDK1.8,则会先判断当前位置上的Node的类型,看是红黑数Node还是链表Node 1.如果是红黑数Node,则将key和value封装.原创 2021-06-24 22:49:21 · 133 阅读 · 3 评论 -
ArrayList和LinkedList区别
底层数据结构不同,ArrayList要基于数组实现的,LinkedList底层是基于链表实现的 由于底层数据结构不同,他们所适用的场景也不同,ArrayList更适合随机查找,LinkedList更适合删除和添加,查询添加删除的时间复杂度不同 另外ArrayList和LinkedList都实现了List接口,但是LinkedList还额外实现了Deque接口,所以LinkedList还可以当作队列来使用 ...原创 2021-06-24 16:43:15 · 86 阅读 · 0 评论