Java学习笔记119——List集合特有的迭代器

List集合特有的迭代器

List集合特有的迭代器

ListIterator extends Iterator 由于继承自Iterator接口,所以内部一定也有hasNext()方法和next()方法

Object previous()返回列表中的上一个元素,并向后移动光标位置。 可以反复调用此方法以向后方遍历列表,或者与调用next()进行混合来回。 (请注意,对next和previous交替调用将next返回相同的元素。)

1、该方法是倒着遍历迭代器

2、该方法的获取元素指针与next()获取元素指针是同一个 boolean hasPrevious()返回true如果遍历反向列表,列表迭代器有多个元素。 (换句话说,如果previous()将返回一个元素而不是抛出异常,则返回true )。

注意: 要想倒着遍历,必须先正着遍历一遍。在开发中很少使用,面试中经常遇到。

public class ListIteratorDemo1 {
    public static void main(String[] args) {
        //创建集合对象
        List list = new ArrayList();
​
        //添加元素
        list.add("hello");
        list.add("world");
        list.add("java");
        list.add("hadoop");
​
        ListIterator listIterator = list.listIterator();
​
//        while (listIterator.hasPrevious()) {
//            Object previous = listIterator.previous();
//            String s = (String) previous;
//            System.out.println(s + ",长度为:" + s.length());
//        }
​
        //NoSuchElementException
        //迭代器一开始的时候指针在第一个位置之前
//        Object previous = listIterator.previous();
//        String s = (String) previous;
//        System.out.println(s + ",长度为:" + s.length());
​
        //先将指针移动到最后一个元素的位置后面
        //先正着遍历一遍
        System.out.println("正着遍历:");
        while (listIterator.hasNext()){
            Object next = listIterator.next();
            String s = (String) next;
            System.out.println(s + ",长度为:" + s.length());
        }
        System.out.println("************************************");
        System.out.println("倒着遍历:");
        //然后在倒着遍历
        while (listIterator.hasPrevious()){
            Object previous = listIterator.previous();
            String s = (String) previous;
            System.out.println(s + ",长度为:" + s.length());
        }
    }
}
posted @ 2021-12-19 11:07  欧朋  阅读(575)  评论(0)    收藏  举报