我遇到了一些我以前从未见过的Java语法。我想知道是否有人能告诉我这里发生了什么。
for (ObjectType objectName : collectionName.getObjects())
答案 0 :(得分:97)
它被称为 for-each 或增强型for
语句。请参阅the JLS §14.14.2。
编译器提供的 syntactic sugar 用于迭代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();
}
这些是迭代数组的两种等效方法:
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);
}
答案 1 :(得分:5)
变量 objectSummary 包含从 objectListing.getObjectSummaries()返回的 S3ObjectSummary 类型的当前对象,并遍历该集合。
以下是来自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);
}
}
}
在此示例中,变量项保存数字数组中的当前值。
输出如下:
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
希望这有帮助!
答案 2 :(得分:4)
是的......这是针对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对象数据的逐个。和工作。
答案 3 :(得分:2)
这就是每个循环语法。它循环遍历objectListing.getObjectSummaries()
返回的集合中的每个对象。
答案 4 :(得分:2)
for objectListing.getObjectSummaries()中的每个S3ObjecrSummary
它循环遍历集合中的每个项目
答案 5 :(得分:1)
是的,它被称为for-each循环。 collectionName中的对象将从该集合的开头一个接一个地分配给创建的对象引用“objectName”。因此,在循环的每次迭代中,'objectName'将从'collectionName'集合中分配一个对象。 当'collectionName'集合的所有项目(对象)都已完成分配或者只是要获取的对象结束时,循环将终止一次。
for(ObjectType objectName:collectionName.getObjects()){ // loop body&gt; //你可以根据需要在这里使用'objectName',并且每次迭代都会重复显示不同的对象。 }
答案 6 :(得分: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);
}
}