Iterator迭代器和增强for
迭代器
迭代访问==遍历,实现了Iterator接口用来遍历集合的方法
我们知道有序的List集合遍历可以用for循环来实现,但对于无序的Set集合不可用,这时我们就可以使用迭代器来遍历,对外提供了统一的遍历方法
迭代器的使用注意事项:
- 如果集合中没有元素忍让调用next方法获取会出现java.util.NoSuchElementException异常
- hashNext方法仅仅是判断是否有下一个元素并不会移动指针位置,要通过next方法来移动,因此要两个结合着使用
- 遍历过程中不能增删元素,不然会并发修改异常
Iterator<String> iterator = arrayList.iterator(); while (iterator.hasNext()) { String s = iterator.next(); System.out.println(s); }
增强for
JDK1.5新增加的特性,专门用来遍历数组和集合的,本质上属于迭代器
使用注意事项
- 因为本质上是迭代器,所以不能增删数据
- 必须有循环必须有被遍历的目标,目标只能是Collection或者数组,仅仅作为遍历操作出现
int[] arr = {123, 456, 798}; for (int i : arr) { System.out.println(i); }