Java for loop syntax: “for (T obj : objects)”
我遇到了一些我以前从未见过的Java语法。我想知道是否有人可以告诉我这里发生了什么。
for (ObjectType objectName : collectionName.getObjects())
我遇到了一些我以前从未见过的Java语法。我想知道是否有人可以告诉我这里发生了什么。
for (ObjectType objectName : collectionName.getObjects())
它称为 for-each 或 enhanced for
语句。请参阅 JLS §14.14.2。
它是编译器提供的语法糖,用于迭代迭代迭代
的 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();
}
这些是循环访问数组的两种等效方法:
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);
}
变量 objectSummary 保存从 objectListing.getObjectSummary() 返回的 S3ObjectSummary 类型的当前对象,并循环访问集合。
下面是 Java 教程中此增强的 for 循环的示例
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);
}
}
}
在此示例中,变量项保存数字数组中的当前值。
输出如下:
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
希望这有帮助!