Java之路:Iterator与ListIterator

迭代器(也是一种设计模式)是一个对象,它的工作是遍历并选择序列中的对象,而客户端程序员不必知道或关心该序列底层的结构。此外,迭代器也被称为轻量级对象,创建它的代价小。

一、Iterator

Java中,Iterator只能单身移动,这个Iterator只能用来:
(1)使用方法iterator()要求容器返回一个Iterator。Iterator将准备好返回序列的第一个元素。

List<Integer> list = Arrays.asList(0, 1, 2, 3);
Iterator<Integer> it = list.iterator();

(2)使用next()方法获得序列中的下一个元素。

Integer i = it.next();

(3)使用hasNext()检查序列中是否还有元素。

while(it.hasNext()) {
	...
}

(4)使用remove()将迭代器新近返回的元素删除。

for(int i = 0; i < 2; i++) {
	it.next();
	it.remove();
}

注:如果你只是向前遍历List,并不打算修改List对象本身,那么使用foreach语法会显得更简洁。

二、ListIterator

ListIterator是一个更加强大的Iterator的子类型,它只能用于各种List类的访问,但是它可以双向移动。它还可以产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引。
(1)可以使用set()方法替换它访问过的最后一个元素。
(2)可以通过listIterator()方法产生一个指向List开始处的ListIterator。
(3)可以通过listIterator(n)方法产生一个指向列表索引为n的元素处的ListIterator。

(1)可以使用方法替换它访问过的最后一个元素。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值