当前位置: 代码迷 >> Java相关 >> LinkedList类中的poll()方法问题。
  详细解决方案

LinkedList类中的poll()方法问题。

热度:331   发布时间:2013-04-18 17:23:05.0
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()+"、") ;
        }
   
    }
}
搜索更多相关的解决方案: 谢谢  

----------------解决方案--------------------------------------------------------
这个很有意思,不是那么容易发觉,出现问题的地方是 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());就能清楚看到这个变化了。

----------------解决方案--------------------------------------------------------
回复 2楼 ren829
嗯嗯  明白了  谢谢你!!
----------------解决方案--------------------------------------------------------
  相关解决方案