黑马程序员技术交流社区

标题: 迭代器细节,求解!! [打印本页]

作者: HM周磊    时间: 2013-3-21 15:55
标题: 迭代器细节,求解!!
本帖最后由 HM周磊 于 2013-3-21 16:59 编辑
  1. class TreeSetDemo
  2. {
  3. public static void main(String[] args)
  4. {
  5. TreeSet ts = new TreeSet();

  6. ts.add(new Student("lisi02",22));
  7. ts.add(new Student("lisi007",20));
  8. ts.add(new Student("lisi09",19));

  9. Iterator it = ts.iterator();

  10. while(it.hasNext())
  11. {
  12. Student stu = (Student)it.next();
  13. // (Student)it--->这里是什么意思,(对象)接口?向下转型?

  14. // 求解!!快疯了————
  15. }

  16. }
  17. }
复制代码

作者: 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