当前位置: 首页 > 面试题库 >

Java的for-each是否为每次迭代都调用嵌入式方法(返回集合)?

仉明知
2023-03-14
问题内容

如果有一个方法调用,MyClass.returnArray()并且我使用for-each构造(也称为“ enhanced for”循环)遍历数组

for (ArrayElement e : MyClass.returnArray()) {
   //do something
}

那么returnArray()每次迭代都会调用该方法吗?


问题答案:

不,不会。第一次调用的结果将存储在编译后的代码中的一个临时变量中。

从有效的Java 2nd。埃德 ,项目46:

请注意,即使对于数组,使用for-
each循环也不会降低性能。实际上,在某些情况下,它可能只比普通的for循环提供一点性能优势,因为它只计算一次数组索引的限制。



 类似资料:
  • 问题内容: 在Java中添加了增强的for循环(foreach循环)后,它可以与数组或的目标一起使用。 这对于仅实现一种迭代类型并因此具有单个方法的Collection类非常有用。 但是我发现自己非常想让我使用Collection类中的非标准迭代器感到沮丧。例如,我最近试图帮助某人使用a 作为LIFO /堆栈,然后以FIFO顺序打印元素。我被迫这样做: 我失去了for-each循环的优势。这不仅与

  • 我正在做一些产生正确结果的事情。然而,从设计观点来看,这是错误的。 该程序的重点是列出一个数字的所有幂的结果,直到并包括用户定义的限制。 我有一个构造函数,它接受扫描器中的基和指数。然后是一种利用for循环计算每个指数的幂的方法。 现在,问题是我直接从这个方法打印每个循环迭代的结果。这超过了私有变量的点,它首先是无效的。 因此,我想定义一个getter方法,它将每个幂的结果返回给输出。我过去常常为

  • 问题内容: 该脚本未遍历“模块”数组的所有值。 这是运行的结果。该数组显示4个元素,但是.each黑色中的代码仅执行一次。 正在运行:打印消息[Module @ 71f09325,Module @ e1ddb41,Module @ 7069a674,Module @ 1f68f952]正在 运行:打印消息模块名称::::: puppetlabs-ntp正在 运行:打印消息安装非自定义正在 运行:工

  • 问题内容: 通常,当我调用getGraphics()时,即使我设置了xxx.getGraphics();它也返回null。xxx可见(如Google搜索所示…) 但这是行不通的,这使我感到沮丧,因为它在C-Sharp中很容易实现。 有谁知道这样做的更好方法,而不是使用getGraphics()? 问题答案: 您通常不希望在Java Swing组件上使用getGraphics,因为如果尚未渲染该组件

  • 问题内容: 我想反应标签中的内容必须是反应标签或字符串。返回标签或字符串的函数;标签或字符串或返回它们的函数的集合。 因此,此处的语句无效: 因此,显而易见的方法是将表达式移动到满足条件时返回标记的函数中。 问题是,某些代码片段会调用很多逻辑很少的函数。代替5行代码段,我们可能有5行代码段,其中有许多对非常小的函数的调用。 将表达式嵌入JSX代码的好方法是什么? 问题答案: 如果没有太多逻辑或导致

  • 如何才能做到这一点呢? 谢谢大家。