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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HM周磊 中级黑马   /  2013-3-21 15:55  /  1406 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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. }
复制代码

4 个回复

倒序浏览
这个是类型转换,把it.next()返回的元素转换成Student。
回复 使用道具 举报
如果你加上泛型,像这样:TreeSet<Student> ts = new TreeSet<Student>();
那你就不用转型

否则默认是Object类型,TreeSet<Object> ts = new TreeSet<Object>();
想要操作Student的方法就必须转型,(Student)it
回复 使用道具 举报
首先你定义的集合没有泛型,也就是说你的集合里可以储存任意的对象..

但在迭代的时候,要返回的元素也不明确..而(Student)it,意思是把你要返回的元素强转成Student类型..
回复 使用道具 举报
wangjinyu501 发表于 2013-3-21 16:18
这个是类型转换,把it.next()返回的元素转换成Student。

哦,原来是这样,我还以为(Student)it是一个整体。亏我还想了半天。囧!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马