web-dev-qa-db-ja.com

Java forループ構文: "for(T obj:objects)"

これまでに見たことのないJava構文に出会いました。ここで何が起こっているのかを誰かが教えてくれないかと思っていました。

for (ObjectType objectName : collectionName.getObjects())
49
locoboy

for-eachまたはenhanced forステートメントと呼ばれます。JLS§14.14.2

構文糖は、 Iterable sおよび配列。以下は、リストを反復処理する同等の方法です。

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();
}

これらは、配列を反復処理する2つの同等の方法です。

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);
}

参考文献

98
Matt Ball

変数objectSummaryは、objectListing.getObjectSummaries()から返されたタイプS3ObjectSummaryの現在のオブジェクトを保持し、コレクションを反復処理します。

以下に、この例for-for loopfrom Java Tutorials を示します。

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);
      }
 }
}

この例では、変数itemは、numbers配列の現在の値を保持しています。

出力は次のとおりです。

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

お役に立てれば !

5
HashimR

はい...これはJavaの各ループ用です。

通常、このループは、データベースからデータまたはオブジェクトを取得するときに役立ちます。

Syntex:

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

例:

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

これはループごとです。

自動的に増分されます。コレクションからUSerオブジェクトデータまで1つずつ入力されています。そして働く。

4
Pradip Bhatt

それがfor eachループ構文です。 objectListing.getObjectSummaries()によって返されるコレクション内の各オブジェクトをループしています。

2
Joshua Rodgers

objectListing.getObjectSummaries()の各S3ObjecrSummaryについて

コレクション内の各アイテムをループしています

2
Joe

はい、for-eachループと呼ばれます。 collectionName内のオブジェクトは、そのコレクションの先頭から作成されたオブジェクト参照「objectName」に1つずつ割り当てられます。したがって、ループの各反復で、「objectName」には「collectionName」コレクションのオブジェクトが割り当てられます。 'collectionName'コレクションのすべてのアイテム(オブジェクト)の割り当てが完了するか、単に取得するオブジェクトが終了すると、ループは1回終了します。

for(ObjectType objectName:collectionName.getObjects()){//ループボディ> //必要に応じてここで 'objectName'を使用でき、各反復で//異なるオブジェクトが再表示されます。 }

1
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);
    }

}
1
Sidarth