黑马程序员技术交流社区
标题:
迭代器细节,求解!!
[打印本页]
作者:
HM周磊
时间:
2013-3-21 15:55
标题:
迭代器细节,求解!!
本帖最后由 HM周磊 于 2013-3-21 16:59 编辑
class TreeSetDemo
{
public static void main(String[] args)
{
TreeSet ts = new TreeSet();
ts.add(new Student("lisi02",22));
ts.add(new Student("lisi007",20));
ts.add(new Student("lisi09",19));
Iterator it = ts.iterator();
while(it.hasNext())
{
Student stu = (Student)it.next();
// (Student)it--->这里是什么意思,(对象)接口?向下转型?
// 求解!!快疯了————
}
}
}
复制代码
作者:
wangjinyu501
时间:
2013-3-21 16:18
这个是类型转换,把it.next()返回的元素转换成Student。
作者:
qintoko
时间:
2013-3-21 16:25
如果你加上泛型,像这样:TreeSet<Student> ts = new TreeSet<Student>();
那你就不用转型
否则默认是Object类型,TreeSet<Object> ts = new TreeSet<Object>();
想要操作Student的方法就必须转型,(Student)it
作者:
芦青
时间:
2013-3-21 16:29
首先你定义的集合没有泛型,也就是说你的集合里可以储存任意的对象..
但在迭代的时候,要返回的元素也不明确..而(Student)it,意思是把你要返回的元素强转成Student类型..
作者:
HM周磊
时间:
2013-3-21 16:57
wangjinyu501 发表于 2013-3-21 16:18
这个是类型转换,把it.next()返回的元素转换成Student。
哦,原来是这样,我还以为(Student)it是一个整体。亏我还想了半天。囧!!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2