数据结构与算法
文章平均质量分 88
整理自己遇到的数据结构与算法,相关的内容。
ha_lydms
不要在同一个坑里摔倒两次。
展开
-
手写代码:HashSet
一、简介1、特点Set容器特点:无序、不可重复。无序指Set中的元素没有索引,我们只能遍历查找;不可重复指不允许加入重复的元素。2、底层实现:HashSet是采用哈希算法实现,底层实际是用HashMap实现的(HashSet本质就是一个简化版的(HashMap),因此,查询效率和增删效率都比较高;查看底层代码,我们发现里面有个map属性,这就是HashSet的核心秘密。我们再看ad...原创 2020-02-11 17:02:50 · 492 阅读 · 0 评论 -
手写代码:HashMap
一、简介1、原理解析Entry[ ] table 就是HashMap的核心数组结构,我们也称之为“位桶数组”;一个Entry对象存储了:key:键对象 value:值对象next:下一个节点hash: 键对象的hash值显然每一个Entry对象就是一个单向链表结构,我们使用图形表示一个Entry对象的典型示意:然后,我们画出Entry[]数组的结构(这也是Hash...原创 2020-02-11 14:59:15 · 315 阅读 · 0 评论 -
手写代码:LinkedList
文章目录一、链表特点以及原理二、单个实现原理解析三、完整增加步骤1、创建基础结构,添加add、toString方法2、增加get方法3、get方法优化、增加remove方法4、根据索引添加元素5、增加索引检测、泛型四、完整版代码一、链表特点以及原理查询慢,增删快。这个分为两种情况,在头尾增加,查询、和在中间增删,查询;在头尾进行:在头尾进行增删,直接在存储头尾对象的first、last...原创 2020-02-09 14:17:17 · 294 阅读 · 0 评论 -
手写代码:ArrayList
1、创建、添加、tostring方法具体增加方法:1、创建默认大小为10的数组2、创建指定大小的数组3、添加元素4、打印数组内容代码:public class MyArrayList<E> { private Object[] elementData; private int size; private static final int DEFA...原创 2020-02-08 16:24:19 · 215 阅读 · 0 评论