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