java.util.ListIterator接口源码解析

本文深入解析ListIterator接口,探讨其在Java集合框架中的作用,包括如何向前或向后遍历List,以及修改和获取迭代器位置的方法。详细介绍了hasNext、next、hasPrevious、previous等核心方法,以及remove、set和add的使用细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 介绍

它是一个list迭代器,允许开发者向前或者向后去遍历一个list、修改一个list、获取迭代器在list中的位置。listIterator没有当前元素,它的位置游标在pre元素与next元素之间,所以一个长度为n的list的listIterator有n+1个可能的位置游标。

注意removeset方法不是依赖于当前游标位置,它依赖于最后一次操作的返回元素,可能是next方法,也可能是previous方法。

Iterator
ListIterator

2. 方法

2.1 hasNext

boolean hasNext();

如果这个list迭代器在前进方向上还有其它的元素,返回true

2.2 next

E next();

返回集合的下一个元素,并且使当前游标位置前进一个位置

2.3 hasPrevious

boolean hasPrevious();

如果这个list迭代器在反向方向上还有其它的元素,返回true

2.4 previous

E previous();

返回集合的上一个元素,并且使当前游标位置后退一个位置

2.5 nextIndex

int nextIndex();

返回下一个游标的索引,如果在list集合的末尾,则返回集合长度

2.6 previousIndex

int previousIndex();

返回上一个位置的索引,如果在集合的开始位置,则返回-1

2.7 remove

void remove();

移除最后一次调用next方法或者previous方法返回的元素,对于当前调用者来说,对一个元素只能调用一次。

注意:如果最后一次调用的是add,则会抛出IllegalStateException异常

2.8 set

void set(E e);

替换最后一次调用next或者previous的元素,如果最后一次调用的是add或者是remove,将会抛出IllegalStateException异常

2.9 add

void add(E e);

在next和previous元素之间插入一个值,不会影响调用next()方法,如果调用previous()方法,会返回这个新的元素

实时内容请关注微信公众号,公众号与博客同时更新:程序员星星
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值