Якщо найпершою операцією, що робиться з ArrayList, є передача addAll
колекції, яка містить більше десяти елементів, то будь-яке зусилля, вкладене у створення початкового десятиелементного масиву для вмісту вмісту ArrayList, буде викинуте у вікно. Кожного разу, коли щось додано до ArrayList, потрібно перевірити, чи буде розмір результуючого списку перевищувати розмір резервного накопичувача; що дозволить початковому резервному сховищу мати розмір нуль, а не десять, призведе до того, що цей тест провалиться один додатковий час протягом життя списку, першою операцією якого є "додати", що вимагатиме створення початкового масиву з десяти елементів, але ця вартість становить менше, ніж вартість створення масиву з десятьма елементами, який ніколи не закінчується звиканням.
Зважаючи на це, можливо, можна було б підвищити продуктивність ще в деяких контекстах, якби було перевантаження "addAll", яке вказувало, скільки елементів (якщо такі є), можливо, будуть додані до списку після цього, а які могли б використовувати це для впливу на його поведінку при розподілі. У деяких випадках код, який додає останні кілька елементів до списку, матиме досить гарну думку про те, що цей список не потребує місця поза цим. Існує багато ситуацій, коли список зараховується один раз і ніколи не змінюється після цього. Якщо в коді пункту відомо, що кінцевий розмір списку становитиме 170 елементів, він містить 150 елементів і резервний запас розміром 160,