我有一个小问题:我有一个包含 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/