Java ListIterator源码总结 ListIterator源码注释翻译和解析中英文对照版

版本
JDK8(JDK1.8)

ListIterator接口源码重点
1.ListIterator接口继承Iterator接口,是Iterator接口的扩展版,ListIterator允许沿着两个方向遍历列表(向后next()和向前previous()),同时比Iterator,多了set(.),add(.)方法用于在光标处替换和添加元素
Iterator源码可以看我这篇文章 Iterator

2.ListIterator没有当前元素,只有一个光标位置,其光标位置始终位于调用previous()返回的元素和调用next()返回的元素之间

3.ListIterator接口方法

方法名 作用
boolean hasNext() 如果此列表迭代器向后遍历列表时还有剩余元素,则返回true
E next() 返回列表中的下一个元素
boolean hasPrevious(); 如果此列表迭代器向前遍历列表时还有剩余元素,则返回true
E previous() 返回列表中的上一个元素
int nextIndex() 返回的是下一次调用的next返回的元素的索引
int previousIndex() 返回的是下一次调用的previous返回的元素的索引
void remove() 从列表中删除next或previous返回的最后一个元素
void set(E e) 将next或previous返回的最后一个元素替换为指定的元素
void add(E e) 将指定的元素插入列表

注意:

  • 交替调用next()和previous()方法将重复返回相同的元素
  • remove()和set()方法必须在调用next或previous后,且remove或add或set均未被调用时,才能调用,即remove()和set()方法无法在一次next或previous后多次调用,且之间会相互影响,一个方法调用了另一个方法不能调用
  • add(.)对next()和previous()方法影响不同,调用add(.)后对next的后续调用将不受影响,对previous的后续调用将返回新元素,
  • add(.)会使得下次调用的nextIndex()或previousIndex()两者返回值都增加1

ListIterator接口源码

package java.util;

/**
 * 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 {@code ListIterator}
 * has no current element; its <I>cursor position</I> always
 * lies between the element that would be returned by a call
 * to {@code previous()} and the element that would be
 * returned by a call to {@code next()}.
 * An iterator for a list of length {@code n} has {@code n+1} possible
 * cursor positions, as illustrated by the carets ({@code ^}) below:
 * 列表的迭代器,允许程序员沿任意方向遍历列表,
 * 在迭代过程中修改列表,并获取迭代器在列表中的当前位置。
 * 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lolxxs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值