Java Iterator 与 ListIterator 深度对比

Iterator 和 ListIterator 都是 Java 集合框架中用于遍历集合元素的接口,但它们在功能和使用场景上有显著差异。以下是两者的详细对比分析:

一、核心区别总览

特性 Iterator ListIterator
继承关系 顶级遍历接口 继承自 Iterator
适用范围 所有 Collection 仅 List 及其实现类
遍历方向 单向(只能向前) 双向(可向前或向后)
元素修改 仅支持删除(remove()) 支持增删改(add()/remove()/set())
位置信息 无当前位置概念 可获取前后索引(nextIndex()/previousIndex())
实现类支持 所有集合的迭代器 ArrayList, LinkedList, Vector 等 List 实现

二、功能对比详解

1. 基本遍历能力

Iterator 示例

List<String> list = Arrays.asList("A", "B", "C");
Iterator<String> it = list.iterator();
while(it.hasNext()) {
   
   
    String item = it.next();
    System.out.println(item);
}

ListIterator 示例

List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));
ListIterator<String> lit = list.listIterator();

// 正向遍历
while(lit.hasNext()) {
   
   
    System.out.print(lit.next() + " ");  // 输出:A B C
}

// 反向遍历
while(lit.hasPrevious()) {
   
   
    System.out.print(lit.previous() + " ");  // 输出:C B A
}

2. 修改操作对比

<
操作 Iterator ListIterator
删除元素 remove() remove()
添加元素 不支持 add(E e)
修改元素 不支持 set(E e)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦幻南瓜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值