gpt4 book ai didi

java - 为什么 Java.Util.Stack 不弹出循环中的最后一个元素?

转载 作者:行者123 更新时间:2023-12-02 15:25:10 25 4
gpt4 key购买 nike

我有一个非常基本的问题

Stack<Integer> s=new Stack<integer>();
s.push(New Integer(1));
s.push(New Integer(2));
s.push(New Integer(3));
for(int i=0;i<s.size();i++){
System.out.println("i: "+i+" size:"+s.size());
System.out.print(s.pop());
if(s.size()>=1)
System.out.print(" ->");
}

这导致输出

3->2->

而不是

3->2->1

循环不应该跑三次,条件是i < s.size()随着堆栈大小的变化而变化?

最佳答案

Is the condition i < s.size() changing as the stack size changes ?

是的,因为 i同时增加size()减少。在脑海中或纸上走一遍逻辑。

for ( i = 0, size = 3 )
pop() ... i++

for ( i = 1, size = 2 )
pop() ... i++

for ( i = 2, size = 1 )
loop ends

我们通常会这样写这样一个循环:

while (!s.isEmpty()) {
Integer e = s.pop();
...
}

关于java - 为什么 Java.Util.Stack 不弹出循环中的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com