为了账号安全,请及时绑定邮箱和手机立即绑定

hasNext();方法的作用

代码:

while(it.hasNext()){

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

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

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

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

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

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

的元素?



正在回答

5 回答

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

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

2 回复 有任何疑惑可以回复我~

会判断

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

hasNext();方法的作用

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信