最后
2020年在匆匆忙忙慌慌乱乱中就这么度过了,我们迎来了新一年,互联网的发展如此之快,技术日新月异,更新迭代成为了这个时代的代名词,坚持下来的技术体系会越来越健壮,JVM作为如今是跳槽大厂必备的技能,如果你还没掌握,更别提之后更新的新技术了。
更多JVM面试整理:
232. 用栈实现队列
题目链接 &&文章讲解
请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):
实现 MyQueue 类:
void push(int x) 将元素 x 推到队列的末尾
int pop() 从队列的开头移除并返回元素
int peek() 返回队列开头的元素
boolean empty() 如果队列为空,返回 true ;否则,返回 false
//分别定义输入栈和输出栈
//push:数据放进输入栈就好
//pop:输出栈如果为空,就把进栈数据全部导入进来,再从出栈弹出数据
// 如果输出栈不为空,则直接从出栈弹出数据
class MyQueue {
Deque<Integer> stackIn;
Deque<Integer> stackOut;
public MyQueue() {
stackIn=new LinkedList<>();
stackOut=new LinkedList<>();
}
public void push(int x) {
stackIn.push(x);
}
public int pop() {
if(stackOut.isEmpty()){
while(!stackIn.isEmpty())
stackOut.push(stackIn.pop());
}
return stackOut.pop();
}
public int peek() {
int res=this.pop();
stackOut.push(res);
return res;
}
public boolean empty() {
return stackIn.isEmpty() && stackOut.isEmpty();
}
}
225. 用队列实现栈
题目链接&&文章讲解
请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。
实现 MyStack 类:
void push(int x) 将元素 x 压入栈顶。
int pop() 移除并返回栈顶元素。
int top() 返回栈顶元素。
boolean empty() 如果栈是空的,返回 true ;否则,返回 false 。
//分别定义输入队列和输出队列:队列是先进先出的规则,把一个队列中的数据导入另一个队列中,数据的顺序并没有变,并没有变成先进后出的顺序。
//方法一:用两个队列que1和que2实现队列的功能,que2进行备份
class MyStack {
Queue<Integer> que1;
Queue<Integer> que2;
public MyStack() {
que1 = new LinkedList<>();
que2 = new LinkedList<>();
}
//在加入元素时先将q1中的元素依次出栈压入q2,
//然后将新加入的元素压入q1,再将q2中的元素依次出栈压入q1
public void push(int x) {
while(!que1.isEmpty()){
que2.offer(que1.poll());
}
que1.offer(x);
while(!que2.isEmpty()){
que1.offer(que2.poll());
}
}
public int pop() {
return que1.poll();
}
public int top() {
return que1.peek();
}
public boolean empty() {
return que1.isEmpty();
}
}
//方法二:用一个队列
//一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外) 重新添加到队列尾部,此时再去弹出元素就是栈的顺序了
class MyStack {
Queue<Integer> queue;
public MyStack() {
queue=new LinkedList<>();
# 面试准备+复习分享:
> 为了应付面试也刷了很多的面试题与资料,现在就分享给有需要的读者朋友,资料我只截取出来一部分哦
![秋招|美团java一面二面HR面面经,分享攒攒人品](https://img-blog.csdnimg.cn/img_convert/0478244180deb479ecf958a55a1722e2.webp?x-oss-process=image/format,png)
> **本文已被[CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
bs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**
**[需要这份系统化的资料的朋友,可以点击这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**