关于iterator?!

jackjack123123123 2010-10-12 02:40:03
listIterator一开始究竟指向容器的哪个元素。在一开始时候调用nextIndex()返回的是0,previousIndex()返回的是-1,那此时的指针究竟指向哪里?如果先调用next()然后再调用previous()返回的都是同一个元素?为什么的呢?
...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wypbt1032 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wypbt1032 的回复:]

listIterator一开始不指向具体的元素;所以调用nextIndex()返回的是0,previousIndex()返回的是-1;如果直接调previous(),就会发出NoSuchElementException异常,next()返回下一个元素,previous()返回当前指向的元素,先调用next()然后再调用previous()返回的都是同一个元素,例如刚开始用next后返回下标是0的……
[/Quote]
不好意思,回答错误!
listIterator的指针不指向具体的元素,而是在元素的中间!
previous和next正好相反
next()返回下一个元素,并且指针向后移一位;
previous()返回上一个元素,指针向后移一位;


wypbt1032 2010-10-12
  • 打赏
  • 举报
回复
listIterator一开始不指向具体的元素;所以调用nextIndex()返回的是0,previousIndex()返回的是-1;如果直接调previous(),就会发出NoSuchElementException异常,next()返回下一个元素,previous()返回当前指向的元素,先调用next()然后再调用previous()返回的都是同一个元素,例如刚开始用next后返回下标是0的元素,并且listIterator指针向后移,指向下标为0的元素,这时用previous返回下标0的元素,所以返回了一样的元素;

next()返回下一个元素,并且指针向后移一位;
previous()返回当前元素,指针不动;
不同的地方在next会使指针先向后移,在返回指向的元素;

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧