Java pour la syntaxe de boucle: "for (T obj: objects)"


Je suis tombé sur une syntaxe Java que je n'avais pas vue auparavant. Je me demandais si quelqu'un pouvait me dire ce qui se passe ici.

for (ObjectType objectName : collectionName.getObjects())
Author: user2864740, 2011-10-14

7 answers

C'est ce qu'on appelle un pour-chaque instructionou améliorée for. Voir JL §14.14.2.

C'est sucre syntaxique fourni par le compilateur pour itérer sur Iterables et les tableaux. Voici des façons équivalentes d'itérer sur une liste:

List<Foo> foos = ...;
for (Foo foo : foos)
{
    foo.bar();
}

// equivalent to:
List<Foo> foos = ...;
for (Iterator<Foo> iter = foos.iterator(); iter.hasNext();)
{
    Foo foo = iter.next();
    foo.bar();
}

Et ce sont deux façons équivalentes d'itérer sur un tableau:

int[] nums = ...;
for (int num : nums)
{
    System.out.println(num);
}

// equivalent to:
int[] nums = ...;
for (int i=0; i<nums.length; i++)
{
    int num = nums[i];
    System.out.println(num);
}

Lecture supplémentaire

 90
Author: Matt Ball, 2017-05-23 12:09:52

La variable objectSummarycontient l'objet courant de type S3ObjectSummaryrenvoyé par la objectListing.getObjectSummaries () et itérer sur la collection.

Voici un exemple de ceci amélioré pour la boucle de Tutoriels Java

class EnhancedForDemo {
 public static void main(String[] args){
      int[] numbers = {1,2,3,4,5,6,7,8,9,10};
      for (int item : numbers) {
        System.out.println("Count is: " + item);
      }
 }
}

Dans cet exemple, l'élément variable contient la valeur actuelle du tableau numbers.

Sortie est comme suit:

Count is: 1
Count is: 2
Count is: 3
Count is: 4
Count is: 5
Count is: 6
Count is: 7
Count is: 8
Count is: 9
Count is: 10

J'espère que cela aide !

 4
Author: HashimR, 2011-10-14 04:57:29

Oui... Ceci est pour chaque boucle en java.

Généralement, cette boucle devient utile lorsque vous récupérez des données ou des objets de la base de données.

Syntex:

for(Object obj : Collection obj)
{
     //Code enter code here
}

Exemple :

for(User user : userList)
{
     System.out.println("USer NAme :" + user.name);
   // etc etc
}

C'est pour chaque boucle.

Il sera incrémental automatiquement. un par un de la collecte aux données d'objet utilisateur a été rempli. et de travail.

 4
Author: Pradip Bhatt, 2013-03-18 11:00:57

C'est la syntaxe pour chaque boucle. Il parcourt chaque objet de la collection renvoyé par objectListing.getObjectSummaries().

 2
Author: Joshua Rodgers, 2011-10-14 04:48:00

Pour chaque S3ObjecrSummary dans objectListing.getObjectSummaries()

Il boucle chaque élément de la collection

 2
Author: Joe, 2011-10-14 04:48:02

Oui, on l'appelle la boucle for-each. Les objets du collectionName seront affectés l'un après l'autre depuis le début de cette collection, à la référence d'objet créée, 'ObjectName'. Ainsi, à chaque itération de la boucle, le 'ObjectName' se verra attribuer un objet de la collection 'collectionName'. La boucle se terminera une fois que tous les éléments(objets) de la collection 'collectionName' auront fini d'être assignés ou simplement que les objets à obtenir sont terminés.

Pour (ObjectType ObjectName: collectionName.getObjects()){ //corps de boucle> // Vous pouvez utiliser le 'ObjectName' ici si nécessaire et différents objets seront //reeprésentés par lui à chaque itération. }

 1
Author: Samitha Chathuranga, 2013-12-18 14:16:16
public class ForEachLoopExample {

    public static void main(String[] args) {

        System.out.println("For Each Loop Example: ");

        int[] intArray = { 1,2,3,4,5 };

        //Here iteration starts from index 0 to last index
        for(int i : intArray)
            System.out.println(i);
    }

}
 0
Author: Sidarth, 2016-05-24 19:39:09