Stack
# Stack
栈(Stack)是一种后进先出(LIFO:Last In First Out)的数据结构,使用非常广泛,例如在方法调用的时候就是通过栈来维护调用层次的。
# Stack 常用方法
Stack
只有入栈和出栈的操作:
- 把元素压栈:
push(E)
; - 把栈顶的元素“弹出”:
pop()
; - 取栈顶元素但不弹出:
peek()
。
在 Java 中,我们用 Deque
可以实现 Stack
的功能:
- 把元素压栈:
push(E)
/addFirst(E)
; - 把栈顶的元素“弹出”:
pop()
/removeFirst()
; - 取栈顶元素但不弹出:
peek()
/peekFirst()
。
为什么 Java 的集合类没有单独的 Stack
接口呢?因为有个遗留类名字就叫 Stack
,出于兼容性考虑,所以没办法创建 Stack
接口,只能用 Deque
接口来“模拟”一个 Stack
了。
当我们把 Deque
作为 Stack
使用时,注意只调用 push()
/pop()
/peek()
方法,不要调用 addFirst()
/removeFirst()
/peekFirst()
方法,这样代码更加清晰。
上次更新: 2024/10/1 18:45:09