LinkedList源码分析(jdk1.8)

跟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),后面会写到这些数据结构,有兴趣的同学可以先去看一下源码,思想其实也很简单。

 

 

转载于:https://my.oschina.net/u/3605966/blog/1511989

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值