230 «列表迭代器

41 篇文章 0 订阅

230 «列表迭代器

(这节课很复杂,半懂)

> 实际上,逆序输出很少用,正序输出多用iterator而非listiterator,重点掌握iterator即可

ListIterator,列表迭代器,通过List集合的listIterator()方法得到,是List集合特有的迭代器

列表的迭代器,允许程序员沿任意方向遍历列表,在迭代过程中修改列表,并获取迭代器在列表中的当前位置。

An iterator for lists that allows the programmer to traverse the list in either direction, modify the list during iteration, and obtain the iterator's current position in the list. A ListIterator has no current element; its cursor position always lies between the element that would be returned by a call to previous() and the element that would be returned by a call to next(). An iterator for a list of length n has n+1 possible cursor positions, as illustrated by the carets (^) below:

列表的迭代器,允许程序员沿任意方向遍历列表,在迭代过程中修改列表,并获取迭代器在列表中的当前位置。ListIterator没有当前元素;其光标位置始终位于调用previous()返回的元素和调用next()返回的元素之间。长度为n的列表的迭代器有n+1个可能的光标位置,如下面的插入符号(^)所示:

ListIterator的常用方法

方法

说明

1

E next()

返回迭代中的下一个元素

2

boolean hasNext()

如果迭代具有更多元素,则返回true,否则false

3

E previous()

返回列表中的上一个元素

4

boolean hasPrevious()

如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true,否则false

--------------------------------------------------------------

package e230;

import java.util.ArrayList;

import java.util.List;

import java.util.ListIterator;

//  outline

//  1.create object,,,2.add elements

//  通过List集合的listIterator()方法得到,ListIterator-iterator

//  ---add()---

//  1.get iterator,,,2.add elements by lit.add()

public class ListIteratorDemo {

    public static void main(String[] args) {

        List<String> list = new ArrayList<String>();

        list.add("230");

        list.add("hello");

        list.add("world");

        ListIterator<String> lit = list.listIterator();

        System.out.println("21.s:");

        while (lit.hasNext()){

            String s = lit.next();

            System.out.println("\t"+s);

        }

        System.out.println("27.reserve order output s:");

        while (lit.hasPrevious()){

            String s = lit.previous();

            System.out.println("\t"+s);

        }

        System.out.println("33.add elements by lit.add()");

        while (lit.hasNext()){

            String s = lit.next();

            if (s.equals("hello")){

                lit.add("tracy");

            }

        }

        System.out.println("\t"+list);

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值