Java for循环语法:"for(T obj:objects)"

loc*_*boy 49 java syntax foreach for-loop

我遇到了一些我以前没见过的Java语法.我想知道是否有人能告诉我这里发生了什么.

for (ObjectType objectName : collectionName.getObjects())
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 98

它被称为for-each增强for语句.参见JLS§14.14.2.

它是编译器提供的用于迭代s和数组的语法糖Iterable.以下是迭代列表的等效方法:

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();
}
Run Code Online (Sandbox Code Playgroud)

这些是迭代数组的两种等效方法:

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);
}
Run Code Online (Sandbox Code Playgroud)

进一步阅读


Has*_*imR 5

可变objectSummary保持类型的当前对象S3ObjectSummary从返回objectListing.getObjectSummaries()和遍历集合。

下面是这方面的一个例子增强的for循环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);
      }
 }
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,变量项保存了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
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助 !