Помните, что:
- есть разница в производительности "raw" для данного количества элементов и в том, как различаются структуры scale ;
- разные структуры работают по-разному в разных операциях, и это, по сути, является частью того, что вам необходимо учитывать при выборе структуры для использования.
Так, например, связанный список имеетбольше нужно добавить в конец, потому что у него есть дополнительный объект для выделения и инициализации для каждого добавленного элемента, но независимо от этой «внутренней» стоимости за элемент, обе структуры будут иметь производительность O (1) для добавления в конец спискат. е. иметь фактически «постоянное» время на добавление независимо от размера списка, но эта константа будет отличаться между ArrayList и LinkedList и, вероятно, будет больше для последнего.
С другой стороны, связанныйlist имеет постоянное время для добавления в начало списка, тогда как в случае ArrayList элементы должны быть«перемещаемая» вдоль, операция, которая занимает некоторое время, пропорциональное количеству элементов.Но для заданного размера списка, скажем, 100 элементов, все еще может быть быстрее "замешать" 100 элементов, чем выделять и инициализировать один объект-заполнитель из связанного списка (но к тому времени, когда вы, скажем,тысяча или миллион объектов или какой бы то ни было порог, это не будет).
Итак, при тестировании вы, вероятно, захотите рассмотреть как «сырое» время операций с заданным размером, так и какэти операции масштаб по мере увеличения размера списка.