A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 何俊森 于 2013-4-7 08:26 编辑
  1. <div class="blockcode"><blockquote><p>import java.util.LinkedList;

  2. public class VectorDemo03 {
  3.         public static void main(String[] args) {
  4.                 LinkedList<String> link = new LinkedList<String>();
  5.                 link.add("A");
  6.                 link.add("B");
  7.                 link.add("C");
  8.                 System.out.print("以FIFO的方式输出:");
  9.                 for (int i = 0; i < link.size() + 1; i++) {
  10.                         System.out.print(link.poll() + " ");
  11.                 }
  12.         }
  13. }
  14. </p>
复制代码
输出结果本应该是:以FIFO的方式输出:A B C
实际运行结果见图:

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

3 个回复

倒序浏览
link的size是在变的
i=0时,size为3,0<4条件成立,去掉A
i=1时,size为2,1<3条件成立,去掉B
i=2时,size为1,2<2不成立,结束循环
所以只输出了A B

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
此for循环有逻辑错误,要想获取可选用 isEmpty当条件来判断
第一次 i = 0 link.size() = 3 ; link.poll输出
第二次 i = 1 link.size() = 2 ; link.poll输出 B
第三次 i = 2 link.size() = 1 ; 条件不成立,继续执行后边代码
  1. package cn.bbs;

  2. import java.util.LinkedList;

  3. /**
  4. *
  5. * @author Administrator
  6. *
  7. */
  8. public class VectorDemo03 {

  9.         public static void main(String[] args) {

  10.                 LinkedList<String> link = new LinkedList<String>();
  11.                 link.add("A");
  12.                 link.add("B");
  13.                 link.add("C");
  14.                 System.out.println("以FIFO的方式输出:");
  15. //                for (int i = 0; i < link.size(); i++) {
  16. //                        System.out.println(link.poll() + " ");//
  17. //                }
  18.                 while (!link.isEmpty()) {
  19.                         System.out.println(link.poll());
  20.                 }
  21.         }
  22. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
若还有问题,继续追问; 没有的话,请将帖子分类改成【已解决】~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马