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

标签 java stack

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

最佳答案

弹出直到遇到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
}

关于java - 不使用 peek() 从堆栈中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21340660/

相关文章:

c - 如何在循环中声明分配的数组?

Windows 上的 C++ 堆栈遍历

java - Spring boot 无法访问多个数据源

java - 在 Java 中使用 Jackson 反序列化异常/throwable 时出现问题

java - 最终和有效最终之间的区别

java - 在 while 循环中更新 jTextArea

Java Scanner hasNextInt() 导致无限循环

java - 在 JFrame 的内容上显示具有透明背景的图像

java - 回文不工作

c++ - 声明一个大小不变的数组 - 编译错误