JAVA_ListIterator

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文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值