黑马程序员技术交流社区
标题: FIFO方式输出容易出现的错误 [打印本页]
作者: Fc10232 时间: 2012-5-16 00:36
标题: FIFO方式输出容易出现的错误
package it.cast.demo;
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
LinkedList<String> link = new LinkedList<String>();
link.add("A");
link.add("B");
link.add("X");
link.add("Y");
System.out.println("以FIFO的方式输出");
for(int i = 0;i<link.size();i++){
System.out.print(link.poll()+"、");
}
}
}
以上程序的结果:A、B、X
作者: Fc10232 时间: 2012-5-16 00:36
{:soso__8961432591078930798_3:}
版主加分呀 ·····
作者: 云惟桉 时间: 2012-5-16 00:56
for(int i = 0;i<link.size();i++){
System.out.print(link.poll()+"、");
}
楼主主要错误就出在这个循环上,其实还不好发现,呵
每次循环过后执行完link.poll,一个元素就移出队列了,那么link.size就会发生改变,变化如下:
移除前link.size() link.poll() 移除后link.size()
(i = 0 ): 4 A 3
(i = 1 ): 3 B 2
(i = 2 ): 2 //此时不满足 i < link.size()条件了,跳出循环
所以结果就输出了A和B
我用楼主代码输出结果是A和B,至于楼主说的出现A B X,我想也许是你的条件当时用的是i<=link.size()吧
希望能帮到你。
作者: Fc10232 时间: 2012-5-16 01:01
云惟桉 发表于 2012-5-16 00:56
for(int i = 0;i
嗯 说的很对。。:lol
作者: Fc10232 时间: 2012-5-16 01:01
云惟桉 发表于 2012-5-16 00:56
for(int i = 0;i
嗯 说的很对。。:lol
作者: Fc10232 时间: 2012-5-16 01:04
本帖最后由 Fc10232 于 2012-5-16 01:06 编辑
哇······················UID是什么? 我的好顺------>22222C:%5CUsers%5CAdministrator%5CDesktop
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |