java - 最快的集合包含 5-10 个整数的方法

标签 java performance collections

我有一个小问题:我有一个包含 5-10 个整数的集合。它们不会改变或其他任何东西,但它们始终存在。所以我的问题是哪个 Collection 对于 contains 方法最好/最快:ArrayList、LinkedList、Vector、HashSet 或...?

最佳答案

由于计算机加载数据的方式(CPU 优化假定您将使用相邻的内存地址)
使用小型阵列可能是最快的解决方案。

如果实际数字将是小数字,Java 将优化 Integer(非基元),因此使用 ArrayList 应该产生与使用 int[] 类似的结果。
如果您使用更大的数字(不在 -128 到 127 之间),int[] 数组将产生更好的结果。

使用 Hashset 的开销可能比在 int[] 数组上实际运行 5-10 次比较要花费更多。

您可能需要考虑将这些数字放入一系列 IF 条件中。

以上所有内容,只有在您每秒至少运行 100,000 次这些比较时才会产生影响。除此之外,这并不重要。

总结:
代码<< int[] 数组<< ArrayList << HashSet

关于java - 最快的集合包含 5-10 个整数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26872951/

相关文章:

java - "this"是什么意思?

Javascript 性能 : reduce() vs for-loop

ios - Swift Collection underestimateCount 使用情况

@CollectionOfElements 的 hibernate 空值

java - Java 中有 "tagged"集合吗?

java - 以毫秒从 JodaTime 获取 ISO8601

java - Morphia 0.110 找不到带有字符串 id 的引用

java - 在Lucene Spell Checker 5.3.1中,如何获得最接近的匹配,无论它有多糟糕?

mysql - mysql 查询速度慢,在 6 个月之前的许多最大日期上一对多连接表

java - Android - 布局性能 : Programmatic vs XML