文档章节

LinkedList源码分析(jdk1.8)

zysaaa
 zysaaa
发布于 2017/08/17 13:14
字数 369
阅读 12
收藏 0

跟ArrayList一样,我们先看这个类实现(继承)的接口(类),

public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable

后面2个不用多说,不清楚的可以看ArrayList的那篇,可以看到他比ArrayList少实现了RandomAccess接口,因为他是基于链表实现的,很好理解。我们看他实现的父类:AbstractSequentialList,这个类其实是继承了AbstractList,并对AbstractList定义的方法做了简单的实现,都是用迭代器实现的,Sequential是什么意思:按次序的,顾名思义,这个类的子类是按次序进行访问的,而非像ArrayList那样能够RandomAccess。List接口无需多说,我们再看第三个接口Deque:双端队列,而Deque其实是继承了Queue这个接口,Queue大家都熟悉,先进先出(头进尾出)的一种数据结构,而对比可以发现,Deque比Queue多出了几个方法:他可以从尾部操作这个队列,队列两端的元素既能入队也能出队,是一个 强化版的队列,如果你再做一点限制,使其只能头进头出,那么就摇身一变成为了栈。当然jdk中的栈并不是基于这个实现的,而是基于Vector实现的(线程安全的ArrayList),后面会写到这些数据结构,有兴趣的同学可以先去看一下源码,思想其实也很简单。

 

 

© 著作权归作者所有

zysaaa
粉丝 0
博文 5
码字总数 6056
作品 0
衢州
私信 提问
【JDK1.8】JDK1.8集合源码阅读——LinkedList

一、前言 这次我们来看一下常见的List中的第二个——LinkedList,在前面分析ArrayList的时候,我们提到,LinkedList是链表的结构,其实它跟我们在分析map的时候讲到的LinkedHashMap的结构有一...

达达土人
2018/01/07
0
0
LinkedList工作原理

1.学习LinkedList的必要性 在ArrayList工作原理中,我们了解到ArrayList和LinkedList是List接口的两个重要实现。并且ArrayList是一个动态数组的实现。因此ArrayList在队列中插入和删除元素方...

kukudeku
2016/09/03
135
0
RandomAccess接口解密

版权声明:本文为博主原创文章,欢迎大家讨论,未经博主允许不得转载. https://blog.csdn.net/u010398771/article/details/85239144 借用jdk1.8中的源码: public interface RandomAccess {} 就...

长河
2018/12/24
0
0
搞懂 HashSet & LinkedHashSet 源码以及集合常见面试题目

HashSet & LinkedHashSet 源码分析以及集合常见面试题目 经过上两篇的 HashMap 和 LinkedHashMap 源码分析以后,本文将继续分析 JDK 集合之 Set 源码,由于有了之前的 Map 源码分析的铺垫,S...

群星纪元
03/31
35
0
LinkedList源码分析

一、源码分析 1、构造方法源码分析: transient int size = 0; transient Node<E> first; transient Node<E> last; public LinkedList() {}由构造方法可知,只是新建了一个LinkedList对象,其......

浮躁的码农
2016/02/02
25
0

没有更多内容

加载失败,请刷新页面

加载更多

Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
44分钟前
5
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
今天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
今天
7
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
今天
2
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部