Это:
LinkedList обеспечивает лучшую производительность для вставки и удаления.
И это:
Наконец, реализация LinkedListдля стека может быть проще и производительнее, чем массивы
неверны.
Они по-прежнему неверны, даже если учесть это:
Кроме того,Размеры массивов фиксированы, в любое время, когда вам нужно увеличить размер списка, вам также нужно перераспределить новый массив и скопировать содержимое.
Стек основан на Vector
, потому что этоболее эффективен, чем связанный список, с точки зрения как скорости, так и потребления памяти.
Допустим, вы помещаете 1 миллион элементов в конец списка / верхнюю часть стека.
Сколько выделений памятивыполняются все вместе? Вектор: ~ 20. LinkedList: ~ 1000000
Сколько байтов модифицировано (в значительной степени пропорционально оставшемуся времени)? Вектор: ~ 10 МБ. LinkedList: ~ 24 МБ
Общее потребление памяти? Вектор: ~ 4 МБ, LinkedList: ~ 16 МБ