在Java集合框架中,Iterator 是用来遍历集合元素的一种方式,它不是集合,主要用来迭代 ArrayList 和 HashSet 等集合。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add("ddd");
Iterator it = list.iterator();
}
}
获取迭代器的方法:
Iterator it = list.iterator();
Iterator 接口提供了三种主要方法:hasNext(),next(),和 remove()。
hasNext () 方法用于检查迭代器是否还有未访问的元素。它返回一个布尔值:
- 如果存在下一个元素,返回
true
。 - 如果没有下一个元素,返回
false
。
next () 方法返回迭代器指向的当前元素,并将指针移动到下一个元素。每调用一次 next()
方法,指针就会向前移动。
使用while循环加上hasNext(),next()方法就可以实现输出集合中的所有元素。
while(it.hasNext()) {
System.out.println(it.next());
}
remove() 方法删除调用 next()方法后返回的最近一个元素。必须在next()方法之后调用。
while(it.hasNext()) {
if (it.next().equals("aaa")){
it.remove();
}
}
为什么迭代器不能多次遍历集合
单向遍历:迭代器是单向的,每次调用 next() 方法,游标都会向前移动并指向下一个元素。因此,迭代器不支持回退或重置到开始位置。要重新遍历集合,需要重新获取一个新的迭代器实例。
所有要实现多次遍历集合需要重新获取迭代器,或者直接使用for循环实现。