Java中“for each”循环究竟如何工作?详细解释与示例
大家好!我刚开始学习Java,遇到了for each循环。我大致知道如何使用它,但想深入了解细节:它“在底层”究竟是如何工作的?
例如,我有这样一段代码:
```java
String[] fruits = {"Apple", "Banana", "Cherry"};
for (String fruit : fruits) {
System.out.println(fruit);
}
```
我看到它只是打印出数组的每个元素。但我对以下几点感兴趣:
1. 这仅仅是普通带索引for循环的语法糖吗?还是另有玄机?
2. 如果我在循环内尝试修改fruit变量,会发生什么?数组元素会改变吗?
3. for each可以用于任何集合(如ArrayList、HashSet等)吗,还是仅限数组?
4. for each和普通for循环在性能上有区别吗?
5. 如果我在循环内需要元素的索引,该怎么办?必须额外声明一个变量吗?
感谢详细解释和代码示例。提前致谢!