java - 将循环分成更小的循环是否重要?

标签 java loops control-flow

如果你有一个包含 2 个主要部分的 for 循环,如下所示:

for (object o : objects){
doSomething(o);
doSomething2(o);
}

像这样将循环拆分为 2 个较小的循环会影响性能吗?

for (object o : objects){
doSomething(o);
}

for (object o : objects){
doSomething2(o);
}

最佳答案

从技术上讲, 是的,您最终不得不迭代两次。根据定义,除了可能的操作范围很窄之外,这将比迭代一次慢。您还必须将迭代器对象分配两次而不是一次,等等。如果您正在处理一个庞大的列表,我想两个循环也可能导致更多的内存分页。

在现实世界中?你必须有一个非常大列表,或者一个非常慢的迭代器,这才重要。


主观上:如果您可以以任何一种方式进行操作(例如,操作顺序无关紧要),我会选择在编写和阅读代码方面最有意义的操作。对我来说,通常这将是一个循环,因为这样我就可以很清楚地看到每个对象发生了什么,但大概你有理由问。我不会担心性能,除非我知道我要处理真正庞大的东西(数十万甚至数百万个条目),或者我看到一个现实世界的问题代码我在讲话。

关于java - 将循环分成更小的循环是否重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33721797/

相关文章:

java - 多个安卓屏幕的图像大小

php - PHP-如果当前循环中不存在图像,则嵌套循环将拉入先前的循环图像

java - 如何保留 finally block 抛出的异常?

loops - Perl循环标签算作GOTO吗?

c - for循环初学理解

C 程序打印范围

java - 使用 TLS 的 Grizzly - 握手问题

java - android setOnclickListener onClick方法非最终变量

java - 使用 java 将数据附加到同一文本文件

java - 如何在循环中组合 if 语句