ListIterator是Iterator的子类,但是它只能用于各种List类。由于Iterator只能向前移动(说到迭代器脑子里一定要有指针的概念,可以想象成有一个数组,在数组第一个元素前有个指针,这就是iterator初始时的指针状态),所以ListIterator出现了。ListIterator可以双向移动,并且有额外的方法。
javacode:
public class TestList {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for(int i=5; i< 20; i++)
{
list.add(i);
}
ListIterator<Integer> it = list.listIterator();
while(it.hasNext())
{
System.out.println(it.nextIndex() + "-->"+it.next() + "-->" + it.nextIndex());
}
ListIterator<Integer> is = list.listIterator(3);
while(is.hasNext()){
is.next();
is.set(999);
}
for(Integer i : list){
System.out.println(i);
}
}
}
以上代码的运行结果如下:
0–>5–>1
1–>6–>2
2–>7–>3
3–>8–>4
4–>9–>5
5–>10–>6
6–>11–>7
7–>12–>8
8–>13–>9
9–>14–>10
10–>15–>11
11–>16–>12
12–>17–>13
13–>18–>14
14–>19–>15
5
6
7
999
999
999
999
999
999
999
999
999
999
999
999