【发布时间】:2016-01-22 12:35:16
【问题描述】:
我有一个像这样的for loop 结构:
for(T element1 : list1) {
for(T element2 : element1.getSubElements()) {
...
}
}
list1 包含大约 10.000 个元素,element1.getSubElements() 还包含大约 10-20 个元素,每次迭代。
循环大约需要 2 分钟才能完成。
关于如何改进这一点的任何想法?
【问题讨论】:
-
分析
...中的内容,看看那里是否有任何事情要做。 -
你不会在集合解析中获得太多的速度,你需要看看内部括号之间的逻辑。
-
你在用
element1和element2做什么? -
在
if条件下是有意义的。添加一些诸如System.out.println(System.currentTimeMillis())之类的计时报告,以准确确定哪个方法调用花费的时间最多。 -
我猜,你也需要显示内部 for 循环的逻辑。除了循环需要时间之外,可能还有其他事情。此外,可能会根据您的情况对列表进行某些排序以提高性能。您还需要显示
list1和element1.getSubElements()的实际对象类型。
标签: java performance for-loop