hasNext();方法的作用

来源:4-6 学生选课—课程查询

木器时代

2015-11-04 13:47

代码:

while(it.hasNext()){

Course cr = (Course) it.next();

System.out.println("课程"+cr.id+":"+cr.name);

我不明白iterator迭代器是怎么工作的

是不是像个容器把List逐个取出,让List里面的元素被拿出来了

拿完后,用(it.hasNext())判断里面没有元素了,再跳出循环

那么既然里面都没有元素了,那后面的for each怎么还是可以遍历List

的元素?



写回答 关注

4回答

  • 天启之魂
    2015-11-04 14:00:55
    已采纳

    你没去了解集合中的数据结构,拿ArrayList为例  这个集合的底层结构是一个可变长度的数组,是一个有序的集合,使用迭代器迭代的时候 会找到第一个元素然后进行操作,并不会将这个元素从集合中删除,然后再来判断这个元素的后面是否还有元素,如果有,继续迭代,所以你迭代完成后,集合中的元素仍然在集合中

    实际上一般的迭代器在迭代的时候并不能增删集合中的元素(即使你想加入代码来达到这个效果也是不行的),这样会发生并发性访问异常.

  • qq_姚鑫泉_04096518
    2016-10-20 17:00:34

    会判断

  • 慕粉3214606
    2016-08-04 19:16:02

    hasNext是判断当前元素下面是否还有元素吗?

  • 木器时代
    2015-11-04 21:41:25

    大概明白了,谢谢大神( ̄▽ ̄)"

Java入门第三季

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

409781 学习 · 4339 问题

查看课程

相似问题