foreach(增强for)的使用以及其底层原理

foreach是一个技术名称,是一种遍历方式,通常又可被称为增强的for循环遍历,foreach遍历的关键是记住foreach的遍历格式,foreach形式遍历既可以遍历集合也可以遍历数组。
一、增强for格式

for(被遍历集合或者数组中元素的类型 变量 : 被遍历集合或者数组){
System.out.println(变量);
}

例如:
foreach(增强for)的使用以及其底层原理_第1张图片foreach(增强for)的使用以及其底层原理_第2张图片
二、增强for的优点与缺点
优点:简化了数组或集合遍历的迭代写法,foreach遍历在写法上显得更加的简洁和方便;
缺点:增强for无法知道当前已经遍历到了数组的哪个索引位置处,即无法直接获取索引下标;
使用增强for的场景:进行不关注索引下标的数组或集合迭代;

三、增强for的底层实现原理
首先使用IntelliJ IDEA软件的反编译功能对上述的案例的class文件进行反编译,反编译后的案例代码如下:
foreach(增强for)的使用以及其底层原理_第3张图片
先来关注数组的增强for循环的底层原理,从下图反编译出的源码可以看出,对数组进行增强for遍历其实底层实现就是运用了普通数组遍历是采用的带索引下标的迭代(遍历)
foreach(增强for)的使用以及其底层原理_第4张图片
再来看看对集合使用增强for遍历时其底层实现方式,从下图中可以直观清晰的看出对集合使用增强for遍历就是获取该集合迭代器完成迭代操作,其原理就是获取迭代器(Iterator)对集合元素进行迭代操作:
foreach(增强for)的使用以及其底层原理_第5张图片

你可能感兴趣的:(Java,SE)