📅  最后修改于: 2023-12-03 14:43:04.919000             🧑  作者: Mango
Java迭代器接口是Java集合框架中的一个重要接口,它是一组访问集合元素的方法,可以在迭代过程中访问集合中的每个元素,从而完成对集合元素的遍历。
在Java中,迭代器接口被定义在java.util包中。它是一个泛型接口,定义如下:
public interface Iterator<E> {
boolean hasNext();
E next();
void remove();
}
迭代器接口定义了三个方法:
Java集合框架中的所有集合类都实现了迭代器接口,因此可以使用迭代器来遍历这些集合。下面以ArrayList类为例介绍如何使用迭代器。
import java.util.ArrayList;
import java.util.Iterator;
public class Example {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Java");
list.add("Python");
list.add("C++");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
上述代码中,首先创建了一个ArrayList对象,并向其中添加了三个字符串元素。然后使用iterator()方法获取迭代器对象,然后使用while循环遍历集合中所有元素。在循环中,迭代器的hasNext()方法用于判断集合中是否还有元素可以遍历,next()方法用于获取集合中的下一个元素。
迭代器不仅可以用于遍历集合元素,还可以用于删除集合中的元素。删除元素的方法是使用remove()方法,该方法会删除由上一次调用next()方法返回的元素。
如果在使用迭代器的过程中直接删除集合中的元素,则会抛出ConcurrentModificationException异常。因此,使用迭代器删除元素时必须使用remove()方法。
import java.util.ArrayList;
import java.util.Iterator;
public class Example {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
list.add("Java");
list.add("Python");
list.add("C++");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String element = it.next();
if (element.equals("Python")) {
it.remove();
}
}
System.out.println(list);
}
}
上述代码中,在迭代器遍历集合元素的过程中,判断遍历到的元素是否等于"Python",若是则使用迭代器删除该元素。最后输出删除后的集合元素。需要注意的是,使用迭代器删除元素时必须使用remove()方法,否则程序会抛出异常。