Collection集合(ArrayList)在使用 foreach 时,是通过迭代器 Iterator,不断获取 next 元素,而数组没有这样做,在我们观察数组使用普通 for 与 foreach 两个反编译结果时发现,数组的 foreach 结果与 for 几乎可以说是一模一样,可以看到网上一些说法描述道:“数组也可以使用 foreach 循环遍历,是因为Java将对于数组的 foreach 循环转换为对于这个数组每一个的循环引用”,我想这句话更直观或者更准确的表达应该是:数组使用 foreach 时,是把 foreach 转换为普通 for 来循环处理的,与 Iterable 无关。所以我们需要记住:除了实现 Iterable 接口可以使用 foreach 外,数组也是可以使用 foreach 的,在数组使用 foreach 时,是把 foreach 转换为普通 for 来循环处理。
数组为什么可以用foreach?
最新推荐文章于 2024-03-20 09:31:24 发布