使用泛型后,用迭代器遍历集合元素的问题

来源:4-9 学生选课---应用泛型管理课程 Ⅰ

Sean_Chou

2017-11-12 17:27

看了其他两个类似问题的回答,觉得不满意。在导包正确的前提下,使用迭代器遍历集合元素可以如下图所示:http://img2.mukewang.com/5a080f740001169307740384.jpg

但是也可以如下:

Iterator<Course> it = courses.iterator();
    while(it.hasNext()){
	Course c = it.next();
	System.out.println(c.id + ":" + c.name);
    }

个人一开始觉得it.next()返回的就是Course对象,也就是集合中的元素,其类型肯定是Course类型了,所以为何还要在图里面进行类型转换?

第二种是看到了其他提问里想到的,原来迭代器还可以指定类型,就像集合的泛型似的,那么接下来就不用类型转换了。也许这里缺少的是迭代器的知识。

写回答 关注

1回答

  • Sean_Chou
    2017-11-12 17:42:23

    http://img1.mukewang.com/5a0815470001a1c406300218.jpg

    在未类型转换时,报错是:Type mismatch: cannot convert from Object to Course。看来迭代器返回的是Object类型,就好像放入集合中的元素被转变成(是转变)Object类型一样。

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409777 学习 · 4339 问题

查看课程

相似问题