Необходимо добавить 1 млн элементов — какую структуру вы используете
Ответ зависит от того, в какую часть списка происходит вставка и какие операции планируются далее.
Если вставка в конец и затем произвольный доступ — ArrayList с заданной начальной емкостью: new ArrayList<>(1_000_000). Это избавит от многократного расширения массива и копирования данных. ArrayList будет расходовать меньше памяти и обеспечит быстрый доступ по индексу.
Если вставка преимущественно в начало — LinkedList или ArrayDeque будут быстрее, т.к. не требуют сдвига элементов.
Если порядок не важен и нужна проверка на уникальность — HashSet с new HashSet<>(1_400_000, 0.75f) (initialCapacity с запасом, чтобы избежать рехеширования).
На практике для миллиона элементов ArrayList с предзаданной емкостью — наиболее универсальный выбор: предсказуемая производительность, минимальное потребление памяти и cache-friendly доступ.
На собеседовании: не давайте ответ сразу. Задайте уточняющие вопросы: куда вставляем, что потом делаем с данными, есть ли ограничения по памяти. Это покажет системное мышление.