java - if 语句中的 stack.pop()

标签 java stack lifo

我想知道在 if 语句中从 Stack 数据结构调用 pop() 方法是否会从堆栈中弹出第一个元素?

这是一个代码示例:

public void pop() {
    if(stack.pop() == min) min=stack.pop();
}

这行得通吗?或者像这样声明它更好:

public void pop() {
    int poppedOff = stack.pop();
    if(poppedOff == min) min=stack.pop();
}

我假设它们在做同样的事情,但我不完全确定。

最佳答案

是的。每次调用 pop 都会从堆栈中弹出一个元素。使用 peek() 或在调用 pop() 时保存值(如第二个示例)。此外,将 min 设置为等于该值的值是没有意义的。

关于java - if 语句中的 stack.pop(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47445641/

相关文章:

java - Scala 是否有可能在不更改 JVM 的情况下实现泛型?

java - 如何在一些子类之间共享代码?

java - 多键、链接哈希

bash - 如何在 Bash 中为 GNU Parallel 创建 Stack 或 LIFO

sql - 通过 TSQL 使用 LIFO 方法计算结果

java - 等待同步块(synchronized block)的线程的执行顺序

java - (Java多线程) 多线程中如何传递参数?

java - HttpClientBuilder 问题 : Could not initialize class sun. security.ssl.SSLContextImpl$CustomizedTLSContext

ruby : stack level too deep (SystemStackError) maxlimit

java - java 为什么要实现栈和队列