我正在阅读一个java代码,它有一个for循环
for (PoolStaff staff : staffList)
我还没有看到这样的前循环。我习惯于看到类似“for(int i = 0,i< 5,i ++”等等。
有人可以向我解释一下for循环吗?
答案 0 :(得分:6)
这称为增强型循环,或代表每个循环。这意味着对于列表中的每个项目,给它一个临时名称并用它做一些事情。
如果列表是基元数组,如int[]
,则命名变量是副本。对副本所做的任何更改都不会反映在原始列表中。例如:
int[] myArray = {1, 2, 3};
for(int i: myArray) {
i = i + 1;
}
System.out.println(Arrays.toString(myArray)); // This prints 1, 2, 3!
如果列表是一个对象数组,例如问题中的staffList
,则命名变量是对原始对象的引用,对命名对象的任何更改都将反映在原始列表中。例如:
Person[] myArray = {new Person("Alice", 23),
new Person("Bob", 20),
new Person("Charlie", 25)};
for(Person person: myArray) {
person.age = 30;
}
// Now every person in my list is 30 years old
您可以从官方来源here获取有关每个循环的更多信息。
答案 1 :(得分:1)
它是一个ForEach循环。基本上它迭代了集合的所有元素。