Avatar ·

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. 如果我在循环内需要元素的索引,该怎么办?必须额外声明一个变量吗? 感谢详细解释和代码示例。提前致谢!