栈理论基础篇
小于 1 分钟
理论
堆栈是一种抽象数据类型,用作元素的集合,具有两个主要的操作;
- PUSH:将元素添加到集合
- POP:删除最近添加但尚未删除的元素
栈是一种 LIFO(后进先出)的线性的数据结构,push 和 pop 操作只发生在结构的一端,称为栈顶。
在 Java 中,Stack 类是很粗糙的,源码中推荐使用
ArrayDeque
去替代。
ArrayDeque
基于数组实现的双端队列
ArrayDeque 允许在其头部和尾部进行高效地添加和移除元素,它可以用作栈(LIFO,后进先出)
当空间不足时,它会自动进行扩容操作,通常扩容后的容量是原容量的两倍
问题
堆栈的使用场景?
为什么不是用 Stack 类?
ArrayDeque 是基于什么实现的?
ArrayDeque 数据结构使用过程叙述。
ArrayDeque 为什么要初始化2的n次幂个长度?