美文网首页
LinkedList集合源码分析(2)

LinkedList集合源码分析(2)

作者: 串串番茄 | 来源:发表于2018-03-20 22:42 被阅读0次

    (1)LinkedList 实现了无序、可重复的List接口,并且还实现了Deque(双端队列)和Queue(队列)接口。LinkedList 底层是基于链表结构实现的,实现了双端队列的特性(FIFO)和栈的的特性(LIFO)。

    1)添加元素的方法源码分析?

    具体源码分析如下:

    1)创建Node的链表数据结构

    2)添加元素处理Node的结构关系。

    首先我们看下LinkedList的构造函数,有参的构造函数和ArrayList参数不一致,LinkedList 有参构造函数通过传递一个集合,添加到新LinkedList中。

    LinkedList的构造函数

    addAll通过将参数的集合元素转换成数组(Object[] a = c.toArray())并遍历这个数组创建Node链表关系。

    LinkedList的all方法

    基于all方法我们在看下LinkedList的add方法的源码:

    LinkedList的add方法

    基于上述分析,LinkedList实现了Collection接口的方法,主要是通过双端链表进行实现,在这个基础上扩展了队列的和栈的功能。

    FIFO(先进先出):将元素添加到双端队列的末尾,从双端队列的开头移除元素。(和之前研究的add方法一样)

    LIFO(先进后出):元素被推入双端队列的开头并从双端队列开头弹出。

    在队列的开头插入元素

    相关文章

      网友评论

          本文标题:LinkedList集合源码分析(2)

          本文链接:https://www.haomeiwen.com/subject/wvimqftx.html