Java for循环语法:“for(T obj:objects)” [英] Java for loop syntax: "for (T obj : objects)"
本文介绍了Java for循环语法:“for(T obj:objects)”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
$ b $ pre $
for(ObjectType objectName:collectionName.getObjects())$ b我想知道是否有人可以告诉我这里发生了什么事情。 $ b
解决方案
它被称为 for-each 或为语句增强了。
请参阅 JLS§ 14.14.2 。
这是编译器提供的语法糖 ,用于迭代 Iterable
s和数组。以下是对列表进行迭代的等效方法:
List< Foo> foos = ...; $(foo:foos)
{
foo.bar();
}
//相当于:
List< Foo> foos = ...;
for(Iterator< Foo> iter = foos.iterator(); iter.hasNext();)
{
Foo foo = iter.next();
foo.bar();
$ p 这些是迭代数组的两种等价方法:
int [] nums = ...;
for(int num:nums)
{
System.out.println(num);
}
//相当于:
int [] nums = ...;
for(int i = 0; i< nums.length; i ++)
{
int num = nums [i];
System.out.println(num);
$ b 进一步阅读
I came across some Java syntax that I haven't seen before. I was wondering if someone could tell me what's going on here.
for (ObjectType objectName : collectionName.getObjects())
解决方案 It's called a for-each or enhanced for
statement. See the JLS §14.14.2.
It's syntactic sugar provided by the compiler for iterating over Iterable
s and arrays. The following are equivalent ways to iterate over a list:
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();
}
and these are two equivalent ways to iterate over an array:
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);
}
Further reading
这篇关于Java for循环语法:“for(T obj:objects)”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文