У меня есть программа, в которой мне нужно выполнить от 100 000 до 1 000 000 произвольных чтений объекта типа List за минимально возможное время (например, в миллисекундах) для программы, подобной клеточному автомату. Я думаю, что используемый мной алгоритм обновления уже оптимизирован (эффективно отслеживает активные ячейки и т. Д.). Списки действительно нуждаются в изменении размера, но это не так важно. Поэтому мне интересно, достаточно ли производительности от использования массивов вместо ArrayLists, чтобы иметь значение при работе с таким количеством операций чтения за такие короткие промежутки времени. В настоящее время я использую ArrayLists.
Изменить: я забыл упомянуть: я просто храню целые числа, поэтому другим фактором является использование класса оболочки Integer (в случае ArrayLists) по сравнению с целыми числами (в случае массивов). Кто-нибудь знает, действительно ли для использования ArrayList потребуется 3 поиска указателя (один для ArrayList, один для базового массива и один для Integer-> int), где, поскольку для массива потребуется только 1 (адрес массива + смещение для конкретного int)? Будет ли HotSpot оптимизировать дополнительные поисковые запросы? Насколько важны эти дополнительные поиски?
Edit2: Кроме того, я забыл упомянуть, что мне также нужно выполнять запись с произвольным доступом (запись, а не вставки).