收集与阵列性能明智

Sri*_*san 5 java

能不能让我知道性能明智为什么ArrayCollection更好?

Vin*_*rat 7

它不是.它实际上取决于您对容器的使用.

一些算法可以在阵列上的O(n)中运行,而在另一个集合类型(实现Collection接口)上的O(1)中运行.

  • 例如,考虑删除一个项目.在这种情况下,即使是本机类型,该数组的执行速度也比链接列表及其方法调用(在某些VM上无论如何都可以内联)要慢:它在O(n)VS O(1)中运行以进行链接名单
  • 考虑搜索元素.它在0(n)中运行,用于树的数组VS O(log n).

一些Collection实现使用数组来存储它们的元素(我认为是ArrayList),因此在这种情况下性能不会有很大差异.

您应该花时间优化算法(并使用各种可用的集合类型),而不是担心数组VS Collection的优点/缺点.