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
嗯嗯 明白了 谢谢你!! ----------------解决方案--------------------------------------------------------