4

我正在做一个涉及董事会的任务。基本代码给了我们修改,但是我不明白:for()的参数中的什么意思。它是否通过所有板(ArrayList)?

private ArrayList<MovingElement> moveElems = new ArrayList<MovingElement>();

for (MovingElement mElement : moveElems) {
    mElement.step();
}
4

8 回答 8

10

这是一种特殊形式的for循环,用于遍历数组和 any Iterable,其中包括 any Collection

这被称为for-each循环,如:for each element of a list

阅读:for (MovingElement mElement : moveElems)as _for each MovingElementin the collection moveElems_

请参阅:For-Each 循环

于 2012-10-04T19:34:21.390 回答
4

这是for-eachJava中的循环。

对于Arraylist(或)数组中的每个元素。

该元素将被分配给作用域为 for 循环的 MovingElement mElement。

于 2012-10-04T19:34:12.833 回答
2

可以这样想:

for (MovingElement mElement : moveElems) {
    // translates into English like this: 
    // for EACH MovingElement object in the ArrayList moveElems, 
    // do the following code:
    mElement.step();
}

它是一个 for each 循环。

于 2012-10-04T19:36:37.237 回答
2

这是一个简单的 foreach 循环,它将遍历给定数组中的每个元素。

在这种情况下,MovingElement 将是数组的类型,mElement 将是当前元素,moveElems 将是实际数组。

“:”仅在两个部分之间分隔

因此,在您的情况下,循环将遍历 ArrayList 中的每个元素并使用它的 step() 方法。

于 2012-10-04T19:39:29.210 回答
1

这在 Java 中称为 foreach 或增强的 for 循环。char将':'迭代变量类型/名称与要遍历的对象分开。

这是一个解释其使用的小教程,知道它是在 Java 语言的 1.5 版中引入的,这很有用。它是语法糖,可以通过使用标准 for 循环和/或使用迭代器来实现相同的迭代行为。

foreach 循环可用于遍历数组中的元素,或遍历实现Iterable接口的对象(通常是集合)。

仅供参考,foreach 语句在 Java 语言规范的第14.14.2节中定义。

于 2012-10-04T19:35:33.133 回答
1

这是 Java 的“for each”语法。它或多或少等同于:

Iterator<MovingElement> iter = moveElems.iterator();
while (iter.hasNext()) {
    iter.next().step();
}
于 2012-10-04T19:37:27.970 回答
0

For-each 循环旨在简化最常见的迭代形式,其中迭代器或索引仅用于迭代,而不用于任何其他类型的操作。

http://docs.oracle.com/javase/1.5.0/docs/guide/language/foreach.html

于 2012-10-04T19:38:16.300 回答
0

-你刚刚遇到的是一个被称为扩展 for-loop 或更着名的 for-each 循环。

for( DataType variable : Iterable )

例如:

for( String variable : arr )

arr -可以是字符串类型的数组或集合(即 Iterables)

s -将在每次迭代中获取 arr 的每个值并将其分配给 s

于 2012-10-04T19:44:16.510 回答