【问题标题】:Java performance for loop [duplicate]循环的Java性能[重复]
【发布时间】:2016-11-25 12:58:34
【问题描述】:

我有 for 循环的算法,看起来像:

for(A : collection) {
  for (B : A.collection) {
     for (C : B.collection) {
        do something with C instance
     } 
  } 
}

优化这种嵌套 for 循环的性能的最佳方法是什么?

例如使用LinkedHashMap?

谢谢。

【问题讨论】:

  • 最快的集合是原生数组——如果你可以使用带有 for(;;) 循环的数组——它将是最快的。
  • 请考虑修改您在此问题中发布的代码示例。就目前而言,它的格式和范围使我们很难为您提供帮助;这是一个great resource,可以帮助您开始。 -1,不要走错路。否决票是我们在这里指出内容问题的方式;改进您的格式和代码示例,我很乐意将其还原。祝你的代码好运!

标签: java performance loops for-loop


【解决方案1】:

程序很可能会将大部分时间花在do something with C instance 部分。在这种情况下,优化可能不值得。

除此之外,迭代速度取决于集合的类型。数组和ArrayList 最快。 LinkedList 和大多数其他容器的迭代速度较慢,因为元素访问需要额外的间接。由于同步开销,Vector 也较慢。

优化对内部循环最有效,因为它比外部循环执行得更频繁。

【讨论】:

    猜你喜欢
    • 2012-09-29
    • 2016-04-25
    • 2013-04-04
    • 2012-09-10
    • 2015-08-29
    • 2011-07-27
    • 2021-11-18
    • 2010-11-13
    相关资源
    最近更新 更多