理论基础
Java中实现栈有以下两种方式:
- stack类
- LinkedList实现(继承了Deque接口)
push/pop
(1) Stack实现
Stack底层是使用Vector的,而Vector支持线程同步,所以整体性能相对较低,如果没有多线程的场景,不建议使用Stack。
Stack<Integer> stack = new Stack<Integer>();
(2)LinkedList实现
LinkedList实现了List,Deque(实现了Queue接口)的接口,底层是双向链表实现的,所以不仅可以表示栈,也可以表示队列。
Deque<Integer> stack = new LinkedList<>();
队列
offer/pull
peek:队列最前面的。
(1)使用LinkedList实现队列
底层是链表
Queue<Integer> deque = new LinkedList<>();
(2)使用ArrayDeque实现队列
底层是数组实现
Queue<Integer> queue = new ArrayDeque<>();
232.用栈实现队列
一个栈管理压入,一个栈管理弹出。
分清this.pop和stackout.pop的区别。this.push和stackout.push的区别。
public int peek() {
int result=this.pop();
stackOut.push(result);
return result;
}
225. 用队列实现栈
1.队列是先进先出的规则,把一个队列中的数据导入另一个队列中,数据的顺序并没有变,并没有变成先进后出的顺序。如果用两个队列操作,另一个队列只是当备份的角色。
2.获取栈顶元素相当于构建的栈弹出再压入。
554

被折叠的 条评论
为什么被折叠?



