LinkedList源码分析 | 您所在的位置:网站首页 › linkedlist操作 › LinkedList源码分析 |
JDK1.8
ArrayList源码分析--jdk1.8LinkedList源码分析--jdk1.8HashMap源码分析--jdk1.8AQS源码分析--jdk1.8ReentrantLock源码分析--jdk1.8 LinkedList概述1.LinkedList是用双向链表实现的集合,基于内部类Node实现的集合。 2.LinkedList支持双向链表访问、克隆、序列化,元素有序且可以重复。 3.LinkedList没有初始化大小,也没有扩容机制,通过头结点、尾节点迭代查找。 LinkedList数据结构数据结构是集合的精华所在,数据结构往往也限制了集合的作用和侧重点,了解各种数据结构是我们分析源码的必经之路。 LinkedList的数据结构如下:链表基础知识补充:1)单向链表: element:用来存放元素 next:用来指向下一个节点元素 通过每个结点的指针指向下一个结点从而链接起来的结构,最后一个节点的next指向null。2)单向循环链表 element、next 跟前面一样 在单向链表的最后一个节点的next会指向头节点,而不是指向null,这样存成一个环3)双向链表 element:存放元素 pre:用来指向前一个元素 next:指向后一个元素 双向链表是包含两个指针的,pre指向前一个节点,next指向后一个节点,但是第一个节点head的pre指向null,最后一个节点的tail指向null。4)双向循环链表 element、pre、next 跟前面的一样 第一个节点的pre指向最后一个节点,最后一个节点的next指向第一个节点,也形成一个“环”。 LinkedList源码分析 /** * LinkedList 使用 iterator迭代器更加 快速 * 用链表实现的集合,元素有序且可以重复 * 双向链表 */ public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, java.io.Serializable { /** * 实际元素个数 */ transient int size = 0; /** * 头结点 */ transient Node first; /** * 尾结点 */ transient Node last; /** * 无参构造方法. */ public LinkedList() { } /** * 集合参数构造方法 */ public LinkedList(Collection |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |