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 = threePrevious()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的高手们教我下吧..
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 = threePrevious()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的高手们教我下吧..
^ Element(0) ^ Element(1) ^ Element(2) ^ ... ^ Element(n-1) ^
Element(0) Element(1) Element(2) ... Element(n-1)
cursor positions: ^ ^ ^ ^ ^
哎...API没看清楚...就着急发问了...
谢谢楼上的.
#0 1 2
one two three第二个while开始时迭代器指在最后一个的后面。