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