java - 是否每次为Iterables调用for循环的 "condition"?

标签 java for-loop conditional-statements iterable

假设我有以下代码:

for (Object obj : Node.getIterable()) {
    //Do something to object here
}

和 Node.getIterable() 返回一个可迭代对象。 getIterable() 函数是每次都被调用还是仅在 for 循环开始时被调用?我应该将其更改为:

Iterable<Object> iterable = new Iterable<Object>();
//populate iterable with objects
for (Object obj : iterable) {
    //Do something
}

最佳答案

Java 语言规范详细说明了 foreach 语句的作用。有关详细信息,请参阅“14.14.2 增强的 for 语句”(http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.14.2)。但简而言之,实际上该语言确实保证您正在迭代的表达式只会被计算一次。

关于java - 是否每次为Iterables调用for循环的 "condition"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7692160/

相关文章:

c++ - 如何检查输入是否是数组内的元素

c++ - for 循环中的 const 值

python - 根据条件从另一列复制值

java - Double 的 JFormattedTextField 仍然需要字符

java - 如何下载 Java Servlet 文档并附加到 Eclipse

java - 如何比较学生对象

c++ - 如何写短这个 "or"语句是不是?

java - Crittercism 我无法在实时统计中看到我的崩溃

C编程数据输入错误

c - 在 C 条件语句中可以使用多个整数和一个操作数吗?