Как уже указывалось, операции чтения имеют постоянное время - O (1), но операции записи могут исчерпать пространство в резервном массиве, перераспределение и копирование - так что они выполняются в O ( о) время, как говорит док:
Размер, isEmpty, получить, установить, итератор,
и операции listIterator выполняются в
постоянное время Операция добавления выполняется
в амортизированном постоянном времени, то есть
добавление n элементов требует времени O (n).
Все остальные операции выполняются в
линейное время (грубо говоря).
постоянный коэффициент низкий по сравнению с
что за LinkedList
осуществление.
На практике все является O (1) после нескольких добавлений, так как резервный массив удваивается каждый раз, когда его емкость исчерпана. Таким образом, если массив начинается с 16, заполняется, он перераспределяется на 32, затем на 64, 128 и т. Д., Так что он хорошо масштабируется, но GC может работать во время большого перераспределения.