ListIterator()迭代器指向问题!

lshine 2008-12-13 08:35:04
import java.util.*;

public class ListIteratorDemo{
public static void main(String[] args) {

List list1 = new ArrayList();
list1.add("one");
list1.add("two");
list1.add("three");

ListIterator it = list1.listIterator();

while(it.hasNext())
{ System.out.println("next()element = "+it.nextIndex());
System.out.println("next()element = "+it.next());

}
while(it.hasPrevious())
{ System.out.println("Previous()element = "+it.previousIndex());
System.out.println("Previous()element = "+it.previous());

}

}
}


输出结果是:
next()element = 0
next()element = one
next()element = 1
next()element = two
next()element = 2
next()element = three

Previous()element = 2
Previous()element = three
Previous()element = 1
Previous()element = two
Previous()element = 0
Previous()element = one

我不明白的是 第1个while循环 迭代器应该已经指向了 最后1个元素 也就是three 索引号2 这个元素
那么到了第2个while循环的首个Previous()应该指向到two 索引号1这个元素才对呀..也就是 第2个循环只输出2个元素才对? 为什么还能输出3个呢?

JAVA新手..CSDN的高手们教我下吧..
...全文
130 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ty_fzpb 2008-12-13
  • 打赏
  • 举报
回复
开始时迭代器指在第一个的前面,如下所示:
#0 1 2
one two three

第二个while开始时迭代器指在最后一个的后面。
爱摸鱼de老邪 2008-12-13
  • 打赏
  • 举报
回复
呵呵,跟1楼想一块了,API 文档。
lshine 2008-12-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fosjos 的回复:]
api帮助中有说明

ListIterator 没有当前元素;它的光标位置 始终位于调用 previous() 所返回的元素和调用 next() 所返回的元素之间。长度为 n 的列表的迭代器有 n+1 个可能的指针位置,如下面的插入符举例说明:
^ Element(0) ^ Element(1) ^ Element(2) ^ ... ^ Element(n-1) ^
[/Quote]

哎...API没看清楚...就着急发问了...
谢谢楼上的.
爱摸鱼de老邪 2008-12-13
  • 打赏
  • 举报
回复
ListIterator<E>系列表迭代器,允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。ListIterator 没有当前元素;它的光标位置 始终位于调用 previous() 所返回的元素和调用 next() 所返回的元素之间。长度为 n 的列表的迭代器有 n+1 个可能的指针位置,如下面的插入符举例说明:


Element(0) Element(1) Element(2) ... Element(n-1)
cursor positions: ^ ^ ^ ^ ^

fosjos 2008-12-13
  • 打赏
  • 举报
回复
api帮助中有说明

ListIterator 没有当前元素;它的光标位置 始终位于调用 previous() 所返回的元素和调用 next() 所返回的元素之间。长度为 n 的列表的迭代器有 n+1 个可能的指针位置,如下面的插入符举例说明:
^ Element(0) ^ Element(1) ^ Element(2) ^ ... ^ Element(n-1) ^

62,615

社区成员

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

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