Объем списка не совпадает с его размером.
Емкость - это свойство списков на основе массива (например, ArrayList
или Vector
), и это выделенный размер массива резервных копий (т. Е. Максимальное количество элементов, которое вы можете поместить до того, как вам понадобится расти). структура).
Размер, как вы говорите, это количество элементов, присутствующих в списке.
Тогда, почему вы не сможете вставить элемент туда, куда хотите, если есть место для него? Все просто, потому что интерфейс List
не определяет способ резервного копирования объекта, и вы не можете сделать это в чем-то вроде LinkedList
; таким образом, однородное (и правильное) поведение заключается в создании исключения, когда это происходит.
Итак, у вас есть два варианта:
- Правильно инициализируйте список, добавив значения по умолчанию до желаемого размера.
- Если
null
является разумным значением по умолчанию для вас, вы можете использовать массив напрямую.