我有一个程序,我需要在尽可能短的时间内(以毫秒为单位)对类似列表的对象进行 100,000 到 1,000,000 次随机访问读取,以用于类似元胞自动机的程序。我认为我正在使用的更新算法已经过优化(有效地跟踪活动单元等)。列表确实需要更改大小,但性能并不那么重要。因此,我想知道在如此短的时间内处理如此多的读取时,使用 Arrays 而不是 ArrayLists 的性能是否足以产生影响。目前,我正在使用 ArrayLists。
编辑:我忘了提:我只是存储整数,所以另一个因素是使用整数包装类(在 ArrayLists 的情况下)与 int (在数组的情况下)。有谁知道使用 ArrayList 是否实际上需要 3 个指针查找(一个用于 ArrayList,一个用于底层数组,一个用于 Integer->int),因为数组只需要 1 个(数组地址+特定的偏移量诠释)?HotSpot 会优化额外的查找吗?这些额外的查找有多重要?
Edit2:另外,我忘了提到我还需要进行随机访问写入(写入,而不是插入)。