![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 79
Java旅途
这个作者很懒,什么都没留下…
展开
-
从面试角度分析LinkedList源码
注:本系列文章中用到的jdk版本均为java8 LinkedList类图如下: LinkedList底层是由双向链表实现的。链表好比火车,每节车厢包含了车厢和连接下一节车厢的连接点。而双向链表的每个节点不仅有指向下一个节点的指针,还有指向上一个节点的指针。 在LinkedList源码中有一个Node静态类,源码如下: private static class Node<E> { E item; Node<E> next; Node<E> pr.原创 2020-12-18 15:23:25 · 457 阅读 · 0 评论 -
从面试角度分析ArrayList源码
注:本系列文章中用到的jdk版本均为java8 ArrayList类图如下: ArrayList的底层是由数组实现的,数组的特点是固定大小,而ArrayList实现了动态扩容。 ArrayList部分变量如下,在下面的分析中会用到这些变量。 /** * 默认容量 */ private static final int DEFAULT_CAPACITY = 10; /** * 空的对象数组 */ private static final Object[] EMPTY_ELEMENTDATA = .原创 2020-12-15 11:02:09 · 414 阅读 · 0 评论 -
栈与队列简介
栈与队列和数组、链表、树这几种数据结构不太一样。栈与队列主要是做为程序员的工具来使用,它们主要做为构思算法的辅助工具,而不是完全的数据存储工具。 它们的生命周期比数组那些要短得多,在程序执行期间它们才会被创建,任务执行完就会被销毁。 一 栈 栈是一种只能在一端进行插入和删除数据的数据结构,这一端被称为栈顶(top)。其特点简单来讲就是先进后出。栈的主要机制可以用数组来实现,当然也可以用链表来实现。 用数组实现栈,并完成常用操作——出栈、入栈、查看元素(只能查看栈顶元素)、判断栈是否为空等操作。 public原创 2020-09-28 09:53:28 · 324 阅读 · 0 评论 -
揭开链表的真面目
链表是一种常见的数据结构,链表是由一连串的结点组成,这个节点就是链结点,每个链结点都由数据域和指针域两部分组成。原创 2020-09-01 09:17:54 · 156 阅读 · 0 评论 -
揭开数组的真面目
数组做为一种基础的数据存储结构,应用十分广泛。数组是用连续的内存空间来存储固定长度的、相同数据类型的一种数据结构。原创 2020-08-29 15:11:39 · 194 阅读 · 0 评论