从堆栈中删除元素而不使用peek()

时间:2014-01-24 19:16:36

标签: java stack

我有sStudent个对象和Student个对象e。 如何在不使用e方法的情况下删除最顶层s.peek()上方的堆栈的所有元素?

2 个答案:

答案 0 :(得分:4)

弹出,直到遇到e,然后再次推送e

Student top = null;
while(!s.isEmpty() && !e.equals(top)){
    top = s.pop();
}
if(e.equals(top)) {
    s.push(top);
} else {
    // e was not on the stack
}

答案 1 :(得分:0)

弹出顶部元素,如果弹出的元素变成'e',则将其推回堆栈。否则,再次弹出叠加。