//本文代码出自 左程云 的《程序员代码面试指南》
public class TwoStackQueue {
private Stack<Integer> stackPush;
private Stack<Integer> stackPop;
public TwoStackQueue() {
stackPush=new Stack<Integer>();
stackPop=new Stack<Integer>();
}
public void add(int item){
stackPush.push(item);
}
public int poll(){
if(stackPop.empty()&&stackPop.empty()){
throw new RuntimeException("Your queue is empty!");
}else if (stackPop.empty()) {
while(!stackPush.empty()){
stackPop.push(stackPush.pop());
}
}
return stackPop.pop();
}
public int peek(){
if(stackPop.empty()&&stackPush.empty()){
throw new RuntimeException("Your queue is empty!");
}else if (stackPop.empty()) {
while(!stackPush.empty()){
stackPop.push(stackPush.pop());
}
}
return stackPop.peek();
}
}