用两个栈实现一个队列
private static Stack<Integer> stackPush;
private static Stack<Integer> stackPop;
public TwoStackToQueue(){
stackPush = new Stack<>();;
stackPop = new Stack<>();
}
public void add(Integer value){
stackPush.push(value);
}
public int poll(){
if(stackPush.isEmpty() && stackPop.isEmpty()){
throw new RuntimeException("queue is empty");
}
PushToPop();
return stackPop.pop();
}
public int peek(){
if(stackPush.isEmpty() && stackPop.isEmpty()){
throw new RuntimeException("queue is empty");
}
PushToPop();
return stackPop.peek();
}
public void PushToPop(){
if(stackPop.isEmpty()){
while(!stackPush.isEmpty()){
stackPop.add(stackPush.pop());
}
}
}