Это зависит от того, куда вы добавляете. Например. если в ArrayList вы добавляете его в начало списка, реализация будет вынуждена каждый раз сдвигать все элементы, поэтому добавление n элементов будет выполняться за квадратичное время.
Аналогично для связанного списка, реализация в JDK сохраняет указатель на голову и хвост. Если вы продолжаете прибегать к хвосту или к передней части головы, операция будет выполняться за линейное время для n элементов. Если вы добавляете в другое место, реализация должна будет искать в связанном списке правильное место, что может ухудшить время выполнения. Опять же, это зависит от позиции вставки; вы получите наихудшую временную сложность, если вставите ее в середину списка, поскольку для поиска точки вставки необходимо пройти максимальное количество элементов.
Фактическая сложность зависит от того, является ли ваша позиция вставки постоянной (например, всегда на 10-й позиции), или функцией количества элементов в списке (или какого-либо произвольного поиска по нему). Первый даст вам O (n) с немного худшим постоянным коэффициентом, последний O (n ^ 2).