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