集合的迭代操作 :
把集合中的元素一个一个遍历取出来
迭代器对象 :
Iterator : 迭代器对象,只能从上往下迭代.
boolean hasNext() : 判断当前指针后是否有下一个元素.
object next() : 获取指针的下一个元素并且移动指针.
ListIterator : 是Iterator接口的子接口,支持双向迭代.
Enumeration : 古老的迭代器(适用于古老的Vector类).
-
方式一 : for循环
-
方式二 : for each增强for循环
-
方式三 : 用while循环操作迭代器Iterator
-
方式四(实用) : 用while循环操作迭代器
深入分析for-each和迭代器 :
1. for-each可以操作数组 : 底层依然采用for循环+索引来获取数组元素.
2. for-each可以操作Iterable实例:底层采用的是Iterator(迭代器).
所以,直接用for-each来迭代数组和集合元素即可,简单.
for-each的语法格式:
for(类型 变量 : 数组名/Iterable实例){
//TODO
}
注意有例外↓
当需要变迭代集合元素,边删除指定元素时,使用for-each会发生异常.只能使用迭代器对象的remove方法..
编译后会出现如下异常:如何解决异常?
不要使用结合对象的删除方法(boolean remove(Object ele)).
要使用Iterator中的remove方法.
该方法会从两个线程中同时移除此元素,保证了两个线程的同步.