数据结构
蜀中孤鹰
心之所向,倾力达之。
展开
-
HashMap核心功能源码分析
1.引子"HashMap"由“hash”和“map"两个单词组成,这里的”map"表示“映射”而不是“地图”的意思,两个单词连起来就是“哈希映射表”。Map是一个接口,它有TreeSet 、LinkedHashMap、EnumMap、HashMap等实现类,其中HashMap无疑最重要也很复杂的一个实现类。理清楚了HashMap的原理,对其他的Map实现类也就触类旁通了,其他Map实现类大部分都...原创 2020-02-21 23:14:41 · 196 阅读 · 0 评论 -
参考JDK1.8源码,自己写一个类似于ArrayList的动态数组
ArrayList的基本实现原理ArrayLiST其内部用一个普通数组来存储数据,当此数组不够容纳新添加的元素的时候,则创建一个更大长度的新数组,并将原来数组中的元素复制到新数组中。2.主要的全局变量/常量除了其他一般的全局变量之外,还有一个继承于父类的 modCount属性,它用来记录集合结构被修改的次数,主要应用在迭代过程中确认没有删除或添加元素的操作,防止出现重复遍历或遍历遗漏错误。...原创 2019-09-09 08:44:20 · 279 阅读 · 0 评论 -
分析LinkedLis源码,搞懂双向链表的实现原理,自定义一个双向链表
1.LinkedList实现的基本原理LinkedList是一个双向链表,它主要有两个表示头尾节点的成员变量first 、last,因其有头尾两个节点,所以从头或从尾操作数据都非常容易快捷。LinkedList通过内部类Node来保存元素 ,一个Node对象表示链表的一个节点,有多少个元素就需要多少个Node节点。如果要添加元素,则新建一个Node节点,保存这个元素,同时指定其前驱节点和后继节...原创 2019-09-16 15:31:07 · 457 阅读 · 0 评论