面试题答案
一键面试场景一:遍历并删除集合元素
在遍历集合时,如果需要删除元素,使用迭代器的 remove
方法可以避免 ConcurrentModificationException
。
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorExample1 {
public static void main(String[] args) {
List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);
Iterator<Integer> iterator = numbers.iterator();
while (iterator.hasNext()) {
int number = iterator.next();
if (number % 2 == 0) {
iterator.remove();
}
}
System.out.println(numbers);
}
}
场景二:通用的集合遍历
当需要对不同类型的集合(如 List
、Set
)进行统一的遍历操作时,迭代器提供了一种通用的方式。
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class IteratorExample2 {
public static void main(String[] args) {
Set<String> fruits = new HashSet<>();
fruits.add("apple");
fruits.add("banana");
fruits.add("cherry");
Iterator<String> iterator = fruits.iterator();
while (iterator.hasNext()) {
String fruit = iterator.next();
System.out.println(fruit);
}
}
}