迭代器是⼀种设计模式
三个核⼼⽅法
INFO
- boolean hashNext()
- ⽤于判断iterator内是否有下个元素,如果有则返回true,没有则false
- Obejct next()
- 返回iterator的下⼀个元素,同时指针也会向后移动1位
- void remove()
- 删除指针的上⼀个元素
- 只有当next执⾏完后,才能调⽤remove函数
- 如要删除第⼀个元素,不能直接调⽤ remove(),要先next⼀下()否则调⽤remove⽅法是
会抛出异常的
注意
迭代器遍历元素时不能通过Collection接⼝中的remove⽅法删除元素,只能⽤Iterator的remove⽅法删除元素; 原因 某个线程在 Collection 上进⾏迭代时,不允许另⼀个线程修改该 Collection
1 | public static void testList(){ |
和for循环对⽐
- for循环适合顺序访问,或者通过下标进⾏访问的
- 迭代器适合链式结构
- 最终看使⽤场景,性能会有轻微差别,但是可以忽略
说些什么吧!