java中Stack的sIze的问题

publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubStacks=newStack();s.... public static void main(String[] args) {
// TODO Auto-generated method stub
Stack s=new Stack();
s.push("string");
s.push(12);
s.push(12.1);
s.push("123");
System.out.println("--------------");
System.out.println("size :"+s.size());
for(int i=0;i<s.size();i++)
{
System.out.println(s.pop());
}
}

这个程序中,结果只打印除了s中的前两个,而后两个没有打印(我往s中添加多个栈元素,也是最后两个没打印出来!),但是我把For循环那里换为i<4,就可以完全打印出来!
请高手说一下这是什么问题!
展开
 我来答
jiest1986
2009-02-25 · TA获得超过3432个赞
知道小有建树答主
回答量:1013
采纳率:0%
帮助的人:1112万
展开全部
因为你在打印方法中执行了s.pop(),所以size是在变化的,执行一次里面的元素少一个,所以你用size()做判断是错误的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式