数据结构及算法
贝爷的奇遇冒险
这个作者很懒,什么都没留下…
展开
-
哈希表的构造和原理
哈希表 哈希表的结构 hash1.png 哈希表的原理 哈希表的原理是通过构建一个映射将关键字映射到一个唯一的存储位置。 其中映射的过程是由相关可逆计算得到的,如下是HashMap在idea中的一段源码 static final int hash(Object var0) { int var1; return var0 == null ? 0 : (var1 =...原创 2019-07-13 22:35:49 · 2173 阅读 · 0 评论 -
单链表与双链表
单链表 结构: head|next->node1|next->…->noden|next->null 首先创建单链表要先声明好节点的数据参数和指向下一个数据节点的参数, 然后初始化头节点。 单链表在末尾添加数据时需要从头节点开始遍历知道节点指向null,然后将最后一个节点指向要添加的数据然后让要添加的数据的next节点指向null head|next->node1|...原创 2019-07-08 22:41:18 · 197 阅读 · 0 评论 -
创建一个基于数组的MyArrayList底层实现增删改查
基于数组底层实现增删该查 先声明数组变量int[] array和数组中元素数量的变量size 然后初始化数组长度与元素数量为0 在插入操作中要判断元素是否占满所有容量没占满就插入指定位置并将后面所有数据后移,如果满了就用System.arraycopy()将次数组放入一个新数组,或者先对数组进行扩容原理是相同的都是产生一个新数组,然后让原数组指向新数组。 删除操作要先找到指定位置然后将后面的数据...原创 2019-07-08 22:38:21 · 446 阅读 · 0 评论 -
String,StringBuffer,StringBuilder
基本介绍: String是一个类,是一个应用数据类型。String里面几乎所有的属性都是final,由于它的不可变性导致一系列对字符串进行的拼接,剪裁动作时产生大量无用的中间对象。 StringBuffer是为了解决String拼接产生多余对象的问题而提供的一个类,StringBuffer采用了synchronized关键字保证了线程的安全,但开销也大。 StringBuilder和S...原创 2019-07-07 19:41:12 · 111 阅读 · 0 评论 -
ArrayList和LinkedList
ArrayList和LinkedList是迭代器(Iterator)对象的connection接口下的List接口的实现类。 ArrayLis和LinkedList底层数据结构不同 ArrayList底层数据结构是动态数组,所以它可以使用get()方法访问列表中的任意元素。 而Linkedlist底层数据结构是双向列表,get方法是从一端检查到另一端。所以ArrayList访问速度比Lin...原创 2019-07-07 19:40:37 · 188 阅读 · 0 评论