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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qiubaoyang 中级黑马   /  2014-4-7 13:51  /  2177 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 qiubaoyang 于 2014-4-7 18:23 编辑

                a1.add(new Person("lisi1", 22));
                a1.add(new Person("lisi2", 22));
                a1.add(new Person("lisi3", 23));
                a1.add(new Person("lisi4", 24));
        
                Iterator it = a1.iterator();
                while(it.hasNext()){
                        System.out.println(((Person) it.next()).getName()+"--"+((Person) it.next()).getAge());


上面这段代码的结果为什么不是
lisi1--22
lisi2--22
lisi3--23lisi4--24
而是:lisi1--22lisi3--24




8 个回复

倒序浏览
毕老师在这一点讲得很清楚,试试这个:
  1. a1.add(new Person("lisi1", 22));
  2.                 a1.add(new Person("lisi2", 22));
  3.                 a1.add(new Person("lisi3", 23));
  4.                 a1.add(new Person("lisi4", 24));

  5.                 Iterator it = a1.iterator();
  6.                 while(it.hasNext()){
  7.                         Person p = (Person) it.next();
  8.                                 System.out.println(p.getName()+"--"+p.getAge());
  9.                 }
复制代码



回复 使用道具 举报
因为你的打印语句里有2个it.next()
回复 使用道具 举报
老貓钓鱼 发表于 2014-4-7 14:17
因为你的打印语句里有2个it.next()

能说得详细一点吗?菜鸟。
回复 使用道具 举报
qiubaoyang 发表于 2014-4-7 15:43
能说得详细一点吗?菜鸟。

我是新手,还有一些不懂。我是菜鸟。。
回复 使用道具 举报
System.out.println(((Person) it.next()).getName()+"--"+((Person) it.next()).getAge());
每一个it.next()就表示到ArrayList中去一次数据,所以你的while循环其实只进行了两次,
第一次是取出“lisi1--22”,然后获取Name=lisi1;取出"lisi2--22",然后获取Age=22
第二次是取出“lisi3--23”,然后获取Name=lisi3;取出"lisi4--24",然后获取Age=24
所以打印结果是:
lisi1--22
lisi3--24


回复 使用道具 举报 1 0
Peach2014 发表于 2014-4-7 16:19
System.out.println(((Person) it.next()).getName()+"--"+((Person) it.next()).getAge());
每一个it.next ...

你说得太好了!
回复 使用道具 举报
我当时也犯过这样的错误的,   
it.next()方法每执行一次都会往下遍历一个,你输出语句执行了两次,所以你的两个it.next()得到的并不是同一个元素,你需要value=it.next()赋值,再获取属性就可以了
回复 使用道具 举报 1 0
为你而去 发表于 2014-4-7 19:31
我当时也犯过这样的错误的,   
it.next()方法每执行一次都会往下遍历一个,你输出语句执行了两次,所以你 ...

谢谢,我知道了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马