java iterator

Iterator 模式是用于遍历集合类的标准访问方法。
它可以把访问逻辑从不同类型的集合类中抽象出来,从而避免向客户端暴露集合的内部结构。

迭代器Iterator的遍历

while循环

Iterator it = list.iterator();
		while (it.hasNext()) {
			..........
		}

for循环

for (Iterator it = list.iterator(); it.hasNext();) {
 //迭代器的next方法返回值类型是Object,所以要记得类型转换。
			String next = (String) it.next();
			System.out.println(next);
		}

使用迭代器清空集合

Iterator it = coll.iterator();
		while (it.hasNext()) {
      // 调用remove之前没有调用next是不合法的
			it.next();
			it.remove();
		}

Iterator 总是用同一种逻辑来遍历集合。使得客户端自身不需要来维护集合的内部结构,所有的内部状态都由 Iterator 来维护。客户端从不直接和集合类打交道,它总是控制 Iterator,向它发送”向前”,”向后”,”取当前元素”的命令,就可以间接遍历整个集合。

java.util.Iterator

interface Iterator
迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:

Iterators allow the caller to remove elements from the underlying collection during the iteration with well-defined semantics.

1、迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。

Method names have been improved.

2、方法名称得到了改进。

java.util.ListIterator

interface ListIterator extends Iterator
ListIterator有以下功能:

  • 允许我们向前、向后两个方向遍历 List;
  • 在遍历时修改 List 的元素;
  • 遍历时获取迭代器当前游标所在位置。

注意:迭代器 没有当前所在元素一说,它只有一个游标( cursor )的概念,这个游标总是在元素之间。

参考:
https://blog.csdn.net/u011240877/article/details/52743564
https://blog.csdn.net/u011240877/article/details/52752589
https://wiki.jikexueyuan.com/project/java-enhancement/java-thirty.html
https://blog.csdn.net/qq_33642117/article/details/52039691

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值