Comment fonctionne exactement la boucle « for each » en Java ? Explication détaillée avec exemples
Bonjour à tous ! Je viens de commencer à apprendre Java et je suis tombé sur la boucle for each. Je comprends à peu près comment l'utiliser, mais je veux comprendre les détails : comment fonctionne-t-elle « sous le capot » ?
Par exemple, j'ai ce code :
```java
String[] fruits = {"Apple", "Banana", "Cherry"};
for (String fruit : fruits) {
System.out.println(fruit);
}
```
Je vois qu'il affiche simplement chaque élément du tableau. Mais plusieurs points m'intéressent :
1. Est-ce juste du sucre syntaxique par rapport à une boucle for classique avec index ? Ou y a-t-il autre chose ?
2. Que se passe-t-il si j'essaie de modifier la variable fruit à l'intérieur de la boucle ? L'élément du tableau sera-t-il modifié ?
3. Peut-on utiliser for each avec n'importe quelle collection (ArrayList, HashSet, etc.) ou seulement avec les tableaux ?
4. Y a-t-il une différence de performance entre for each et for classique ?
5. Que faire si j'ai besoin de l'index de l'élément à l'intérieur de la boucle ? Dois-je créer une variable séparée ?
Je serais reconnaissant pour une explication détaillée avec des exemples de code. Merci d'avance.