Boucles foreach en java

va -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Quels sont les avantages et inconvénients de la boucles foreach en java ?

2 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour

    Avantages et inconvénients...par rapport à quoi d'autre ???
    0
    1. va
       
      De la boucle foreach en java
      0
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Avantage et inconvénients est une notion de comparaison...
      Donc foreach... par rapport à quoi d'autre ???
      0
    3. va
       
      Par rapport a la boucle For
      0
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    Liste non-exhaustive :
     

    Ni avantage, ni inconvénient

    • La boucle foreach s'utilise sur un ensemble de données (tableau ou classe implémentant Iterable), mais si on veut faire autre chose que du traitement de données (ex: compter la somme des chiffres allant de 1 à 100), alors la boucle foreach ne sert à rien.

    Avantages

    • La syntaxe du foreach est plus légère, plus rapide à écrire et sans risque d'erreur.
    • La boucle foreach a la même écriture pour tous les types de données qu'elle manipule, on peut donc modifier l'ensemble de données (tableau, List, Set...) sans avoir à réécrire la boucle. Contrairement à la boucle for qui nécessiterait de réécrire l'accès à la données (array[i], list.get(i), etc.)
    • La boucle foreach utilise les itérateurs pour passer d'un élément au suivant, alors que la boucle for fait ses accès (array[i], list.get(i), etc.) sans prendre en compte la dernière valeur lue.

    Inconvénients

    • On n'a pas accès à l'indice en cours, il faut le compter soit même si on en a besoin.
    • La liste est toujours itérée du début à la fin, on ne peut pas itérer à l'envers, ou sauter des éléments.
    • La boucle foreach ne prends pas en compte l'interface RandomAccess, elle utilise toujours l'itérateur quand bien même l'accès direct serait plus efficace.
    0