gpt4 book ai didi

java - for循环条件中方法调用的效率

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:07 25 4
gpt4 key购买 nike

我正在编写一个游戏引擎,其中包含在 ArrayList 中的一组对象使用 for 循环进行迭代。显然,效率是相当重要的,所以我想知道循环的效率。

for (String extension : assetLoader.getSupportedExtensions()) {
// do stuff with the extension here
}

其中 getSupportedExtension() 返回 StringArrayList。我想知道的是,每次循环迭代新扩展时是否调用该方法。如果是这样,做这样的事情会更有效率吗:

ArrayList<String> supportedExtensions = ((IAssetLoader<?>) loader).getSupportedExtensions();

for (String extension : supportedExtensions) {
// stuff
}

?提前致谢。

最佳答案

按照规范,成语

for (String extension : assetLoader.getSupportedExtensions()) {
...
}

扩展成

for (Iterator<String> it = assetLoader.getSupportedExtensions().iterator(); it.hasNext();)
{
String extension = it.next();
...
}

因此,您询问的调用仅在循环初始化时发生一次。它是其方法被重复调用的迭代器对象。

但是,如果您真的对应用程序的性能感兴趣,那么您应该确保您关注的是大赢家,而不是像这样的小人物。几乎不可能使 getter 调用成为任何代码段中的瓶颈。这对于在 HotSpot 上运行的应用程序来说是双倍的,它将内联该 getter 调用并将其转换为直接字段访问。

关于java - for循环条件中方法调用的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29344335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com