java集合
liutc612
这个作者很懒,什么都没留下…
展开
-
HashMap解析并DIY一个MyHashMap
HashMap解析并DIY一个MyHashMapHashMap解析实现原理数据结构图DIY一个MyHashMapHashMap解析看过很多对于HashMap的实现原理的资料,现在自己总结一下。实现原理数组+单向链表+二叉树(JDK1.8修改为当链表长度大于等于8时,将链表转为二叉树)通过计算hash值得到元素在数组中的位置,如果hash冲突了,再判断key是否相等来确定替换值还是插入元素。JDK1.8之前是在链表头部插入元素的,在1.8中是插入尾部的。当元素个数超过table.length原创 2020-05-24 14:49:51 · 251 阅读 · 0 评论 -
LinkedList解析并DIY一个MyLinkedList
LinkedList解析并DIY一个MyLinkedListLinkedList解析1. LinkedList类结构2. add(E e) 方法的源码3. add(int index, E element) 方法的源码DIY一个MyLinkedListLinkedList解析LinkedList底层采用链表实现,是非线程安全的。一个节点除了保存自身的数据外,还持有上一个节点和下一个节点的引用。所以就数据存储上来说,它相比使用数组作为底层数据结构的ArrayList来说,会更加耗费空间。但是相比较而言,原创 2020-05-24 11:49:38 · 216 阅读 · 0 评论 -
ArrayList解析并DIY一个MyArrayList
ArrayList解析并DIY一个MyArrayListArrayList解析1. ArrayList类结构2. add(E e) 方法的源码3. add(int index, E element) 方法的源码DIY一个MyArrayListArrayList解析ArrayList是我们实际开发中经常使用的集合,底层是采用数组实现的,是非线程安全的。特点是能够动态扩容,每次扩容现有容量的50%。根据下标索引访问元素效率高,插入和删除元素效率较低。1. ArrayList类结构public clas原创 2020-05-24 09:54:53 · 144 阅读 · 0 评论