黑马程序员技术交流社区

标题: hasNext问题 [打印本页]

作者: Aimer_WJY    时间: 2014-3-11 15:16
标题: hasNext问题
在对List集合迭代之后,hasNext是一直指向List集合的末尾处么?如果想进行下一次迭代怎么做?
作者: 房建斌    时间: 2014-3-11 15:22
hasNext一直在下一个元素那里,如果没有了下一个元素就为false了。不能进行二次迭代。你可以使用ListIterator,他有一个hasPrevious方法,可以从后往前倒着迭代。跟双向链表一样的。
作者: yuon11937    时间: 2014-3-11 16:04
本帖最后由 yuon11937 于 2014-3-11 16:06 编辑

hasNext只是一个判断条件,当集合中还有元素时,这个判断条件就为真。我们不需要知道hasNext的位置,你说的应该是next的位置,一开始next处于集合第一个元素之前,每迭代一次都会往后移动一位但始终处于两个元素之间,迭代到最后一个元素时,也就位于最后一个元素后面。一旦这个集合迭代完,这个Iterator类对象也就成了垃圾,会被回收。如果还有另外一个集合要迭代,则需要重新调用iterator方法新建一个对应集合的迭代器才能进行下一个集合的迭代。
作者: 王建亮    时间: 2014-3-11 21:43
在正序迭代完后,可以使用hasPrevious来进行逆序迭代,或者用这种方式,在for循环中定义迭代器,并在for循环中完成迭代,在结束for循环后,该迭代器便失去了作用,这样便可以再一次定义迭代器来进行正序迭代。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2