listIterator反向遍历学习笔记

ListIterator接口有两个方法,可以用来反向遍历链表

E previous()
bollean hasPrevious()
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class Test {

    public Test() {
        // TODO Auto-generated constructor stub
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<Integer> clink=new ArrayList<Integer>();


        clink.add(1);
        clink.add(2);
        clink.add(3);
        System.out.println(clink);

        Iterator<Integer> i=clink.iterator();
        i.next();//链表要访问下一个位置只能用next()一个一个的访问过去
        i.next();//移动两次,移动到第二个位置

        i.remove();//将第二个位置的内容删除
        clink.add(3);//在第二个位置add 3
        System.out.println(clink);

        ListIterator<Integer> listIterator=clink.listIterator();
        listIterator.next();//listIterator()反向遍历数组,因为listIterator反向遍历的,所以listIterator指针要先往后移,后面的while()才能执行
        listIterator.next();
        listIterator.next();
        while(listIterator.hasPrevious()){
            System.out.println(listIterator.previous());
        }

        listIterator.next();
        listIterator.set(2);//取代上一个next()返回的值,如这里就是取代1
        listIterator.add(4);//直接从第一个位置开始,跟上一个Iterator无关
        listIterator.add(5);
        /*listIterator2.next();//因为前面有其他的迭代器操作,所以新的迭代器没法操作
        listIterator2.add(6);*/

        Iterator<Integer> ii=clink.iterator();//在后面添加一个只能读的迭代器没事
        ii.next();
        System.out.println(clink);
        System.out.println(clink.get(2));//访问第3三的位置,值为5
    }

}

控制台输出

[1, 2, 3]
[1, 3, 3]
3
3
1
[2, 4, 5, 3, 3]
5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值