2. Iterator
集合的迭代器,依赖于集合而存在。
先看一个栗子:用Iterator遍历Collection
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator; // 注意不要导错了类
public class Test {
public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<Integer>();
collection.add(5);
collection.add(123);
collection.add(456);
collection.add(741);
Iterator<Integer> iterator = collection.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
迭代时如果没有先执行next()则会抛出IllegalStateException,这就意味着必须要先检查是否还有下一个可以被迭代的元素,才能往外取。
jdk1.5之后新出了增强for循环,适合遍历数组和集合
那我们再用增强for循环遍历一下Collection:
import java.util.ArrayList;
import java.util.Collection;
public class Test {
public static void main(String[] args) {
Collection<Integer> collection = new ArrayList<Integer>();
collection.add(5);
collection.add(123);
collection.add(456);
collection.add(741);
for (Integer num : collection) {
System.out.println(num);
}
}
}
重要!迭代器可操作Collection的add和remove且不会出现异常,但for循环并改动会出现异常情况!严禁用for循环遍历并改动Collection