黑马程序员技术交流社区
标题:
练习佚代器中next用法的疑问
[打印本页]
作者:
yhnan
时间:
2013-3-20 20:24
标题:
练习佚代器中next用法的疑问
本帖最后由 易贺男 于 2013-3-21 09:11 编辑
在看第14天第11小节arraylist练习时,毕老师先写了
iterator it = al.iterator();
it.next().getname()+"::"+it.next().getage()
说这样会出现获取lisi01的名字,和lisi02的年龄,这我可以理解。应为next了两次
但是老师后来做了强转之后
person p = (person)it.next();
p.getname()+"::"+p.getage()
出来的结果是lisi01名字对应lisi01的年龄。02的名字对应02的年龄
我想问的是上边和下边出来把it.next的类型强转成person类和让它给p作为引用之外还有什么区别?
作者:
孙晋学
时间:
2013-3-20 21:16
it.next().getname()+"::"+it.next().getage()这种方式不对,因为只判断一次hasNext,却两次调用了next方法
不定义一个变量p,怎么两次调用方法getname(),getage()
作者:
谢洋
时间:
2013-3-20 22:34
it.next().getname()+"::"+it.next().getage()
分别取两个对象的name和age属性,也就是说name 和age不同一个对象
下面的正好相反
作者:
陈腾跃_2013
时间:
2013-3-20 22:49
import java.util.ArrayList;
import java.util.Iterator;
public class CollectionTest {
public static void main(String[] args)
{
ArrayList coll = new ArrayList();
coll.add("one");
coll.add("two");
coll.add("three");
coll.add("four");
Iterator it = coll.iterator();
while(it.hasNext())
{
//一下输出三次
System.out.println(it.next().toString()
+ it.next().toString()
+ it.next().toString());
}
}
}
复制代码
一段有问题的代码帮助理解问题,它输出:
onetwothree
Exception in thread "main" java.util.NoSuchElementException
在没有判断hasnext的时候!
作者:
陈丽莉
时间:
2013-3-20 23:23
还有问题,请继续追问;没有的话,请将帖子分类改成【已解决】~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2