JAVA_ListIterator

来源:互联网 发布:java两种多态机制 编辑:程序博客网 时间:2024/03/29 09:17

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

ListIterator可以知道当前位置的前一个和后一个元素的索引。

还可以使用listIterator(n)方法创建一个一开始指针就指向n位置的ListIterator。使用set()方法可以为当前指针所指位置上的元素赋值。以上只说了ListIterator的一小部分功能,具体请看api文档。

0 0
原创粉丝点击