| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5825 人关注过本帖
标题:LinkedList类中的poll()方法问题。
只看楼主 加入收藏
蓝奇缘
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-12-22
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
LinkedList类中的poll()方法问题。
程序代码:
麻烦大家帮帮忙,为什么 D 没有被输出的?  谢谢了!

import java.util.LinkedList ;
public class LinkedListDemo03 {
    public static void main(String args[]){
        LinkedList<String> link = null ;
        link = new LinkedList<String>() ;
        link.add("A") ;
        link.add("B") ;            //向链表中增加内容
        link.add("C") ;
        link.add("D") ;
        System.out.print("以FIFO方式输出:") ;
        for(int i=0;i<link.size()+1;i++){
            System.out.print(link.poll()+"、") ;
        }
   
    }
}
搜索更多相关主题的帖子: 谢谢 
2013-04-18 17:23
ren829
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:15
帖 子:255
专家分:1174
注 册:2006-3-11
收藏
得分:20 
这个很有意思,不是那么容易发觉,出现问题的地方是 link.size()+1 和poll()的组合, poll()是移除并返回第一个数据,关键是存在移除动作,它会改变link.size()+1 的数值。
for循环会是这样的结果

0   5
1   4
2   3
3   2/这个地方就是条件不符合了,推出循环,
所以for循环只执行了3次,所以只能执行到移除C。
你在for循环里加一个System.out.println( link.size());就能清楚看到这个变化了。
2013-04-18 19:22
蓝奇缘
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2011-12-22
收藏
得分:0 
回复 2楼 ren829
嗯嗯  明白了  谢谢你!!
2013-04-20 00:20
快速回复:LinkedList类中的poll()方法问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.068484 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved