上一篇讲了java集合学习(一):详解ArrayList,大家都知道ArrayList底层是数组。
这篇我们来讲ArrayList的兄弟---LinkedList,相对于ArrayList,LinkedList的实现更加复杂。我们都知道序列分先进先出FIFO(First In,First out),先进后出FILO(First In,Last Out)
FIFO在Java中又叫Queue 队列
FILO在Java中又叫Stack 栈
一、LinkedList 与 List接口
与ArrayList一样,LinkedList也实现了List接口,诸如add,remove,contains等等方法。这都比较简单,在此不作累述。
接下来我们来看看LinkedList的一些特别的地方
二、双向链表 - Deque
除了实现了List接口外,LinkedList还实现了双向链表结构Deque,可以很方便的在头尾插入删除数据
什么是链表结构: 与数组结构相比较,数组结构,就好像是电影院,每个位置都有标示,每个位置之间的间隔都是一样的。 而链表就相当于佛珠,每个珠子,只连接前一个和后一个,不用关心除此之外的其他佛珠在哪里。如下图:
测试代码:
三、队列 - Queue
LinkedList 除了实现了List和Deque外,还实现了Queue接口(队列)。
Queue是先进先出队列 FIFO,常用方法:
offer 在最后添加元素
poll 取出第一个元素
peek 查看第一个元素
示例代码:
运行结果:
四、使用LinkedList实现Stack栈
与FIFO(先入先出的)队列类似的一种数据结构是FILO先入后出栈Stack
根据接口Stack :实现3个方法push、pull和peek(注意和LinkedList本身方法中push和peek的区别)
实现类:MyStack
示例代码:
运行结果:
谢谢你长得这么美还来看小编写的文章!你的关注就是我持续写下去的动力。。。