原文链接
Queue
- 我们可以把
LinkedList
当作队列来用,也可以当作链表来用。 LinkedList
只是一个实现方式,但是可以具备很多特点- 虽然他是一个链表,但是当你从后加从前取,就是队列(Queue)。当你从后加从后取,就是栈(Stack)
- 目前只用Queue中的方法,如果定义为LinkedList的话,方法太多了
offer,poll,peek的演示
.poll()
:谁先来谁先取- 取出来并删掉【取出来之后把它从队列的头删掉】
- 相当于remove
.peek()
:取出来不删掉,只是取出来引用,不删- 相当于get
一共五个值,取第六个时,poll()和remove()的区别
- 如果都能取出来,呢就没什么区别
- 但是当超过范围,取不出来的时候
.poll()
:方法会返回一个特殊值——null或者falseremove()
:方法会抛出异常- 所以用它之前需要做判断
Deque【队列(Queue)和栈(Stack)的结合】
- 双端队列:表示两端都可以做取值或者插值的操作
- Deque既可以当
队列
用,也可以当栈
用
代码演示
LinkedList
:实现了队列(Queue)和双端队列(Deque)接口
- 栈的体现(先进后出)
- 队列的体现(先进先出)