Skip to content

Iterator

Iterator 是一个“迭代器”,用于按顺序访问集合中的元素

Iterator接口

java
boolean hasNext();  // 是否还有下一个元素
E next();           // 获取下一个元素
void remove();      // 删除当前元素(可选操作)

Iterator 的指针(cursor)初始位置在第一个元素之前

获取迭代器

java
Collection<String> list = new ArrayList<>();
list.add("A");
list.add("B");

Iterator<String> it = list.iterator();

迭代

迭代通常与while搭配

java
Iterator<String> it = list.iterator();

while (it.hasNext()) {
    String val = it.next();
    System.out.println(val);
}

增强for

Java 中,增强 for 循环(也叫 foreach 循环)是对普通 for 循环的简化

java
for (元素类型 变量名 : 数组或集合) {
    // 使用变量名操作元素
}
  • 冒号左边是 元素类型 + 临时变量名

  • 冒号右边是 数组或集合

  • 循环中 变量名只是元素的副本(对基本类型修改不会影响原数组,对对象类型修改对象属性会影响原对象,但不能修改引用本身)【浅拷贝】

增强for的本质是Iterator接口:

java
for (String s : list) {
    System.out.println(s);
}

编译后:

java
Iterator<String> it = list.iterator();
while (it.hasNext()) {
    String s = it.next();//浅拷贝
}