增强for循环:原理及可迭代对象有哪些?

增强for循环遍历的原理

增强for循环,又称for-each循环,是一种用于便利集合元素的简便方法。其原理如下:

  1. 为集合创建一个迭代器。
  2. 迭代器指向集合的第一个元素。
  3. 对迭代器指向的元素执行给定的代码块。
  4. 迭代器指向下一个元素,直到遍历完集合的所有元素。

冒号右边允许哪些类型的实体

在增强for循环中,冒号右边只能放置可迭代对象。可迭代对象必须满足以下条件:

  • 是一个数组
  • 实现 iterable 接口

iterable 接口是一个标记接口,它表示该类可以被迭代。只要实现了 collection 接口的类都隐式地实现了 iterable 接口。因此,所有 collection 集合都可以使用增强for循环进行遍历。

示例

以下示例展示了如何使用增强for循环遍历 hashmap:

public void m1() {
    HashMap hashMap = new HashMap<>();
    hashMap.put("a", "jack");
    hashMap.put("b", "alice");
    for (Map.Entry entry : hashMap.e

ntrySet()) { System.out.println(entry.getKey() + "--" + entry.getValue()); } }

在该示例中,entryset() 方法返回一个 set 集合,其中包含 map.entry 对象。map.entry 对象实现了 iterable 接口,因此可以将其用于增强for循环。