Iterator
集合学习笔记系列 续更
一、Iterator介绍
接口 Iterator
对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:
(1)迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
(2)方法名称得到了改进。
此接口是 Java Collections Framework 的成员。
二、方法摘要
三、方法详细信息
(1)hasNext
boolean hasNext()
如果仍有元素可以迭代,则返回 true。(换句话说,如果 next 返回了元素而不是抛出异常,则返回 true)。
返回:
如果迭代器具有多个元素,则返回 true。
(2)next
E next()
返回迭代的下一个元素。
返回:
迭代的下一个元素。
抛出:
NoSuchElementException - 没有元素可以迭代。
(3)remove
void remove()
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指向的 collection,则迭代器的行为是不确定的。
抛出:
UnsupportedOperationException - 如果迭代器不支持 remove 操作。
IllegalStateException - 如果尚未调用 next 方法,或者在上一次调用 next 方法之后已经调用了 remove 方法。
四、Iterator遍历实例
Collection coll = new ArrayList(); //创建对象
coll.add(123);
coll.add(456);
coll.add(new Person("tom",20));
coll.add(false);
while (iterator.hasNext()){
System.out.println(iterator.next());
执行结果
五、小笔记:
使用iterator中的hasNext()和next()进行遍历流程
六、两个常见错误的遍历方法
错误方法一
执行结果:
错误方法二
执行结果: