.. в реализации ArrayList # add !?
Вот реализация:
public boolean add(E object) {
if (lastIndex == array.length) {
growAtEnd(1);
}
array[lastIndex++] = object;
modCount++;
return true;
}
Она вызывает growAtEnd
и внутри этого метода мы находимфрагмент:
} else {
int increment = size / 2;
if (required > increment) {
increment = required;
}
if (increment < 12) {
increment = 12;
}
E[] newArray = newElementArray(size + increment);
if (size > 0) {
System.arraycopy(array, firstIndex, newArray, 0, size);
firstIndex = 0;
lastIndex = size;
}
array = newArray;
.. где приращение установлено на 50% от фактического размера текущего списка.
docjar содержит исходный код Apacheгармоничный проект , платформа Apache с открытым исходным кодом Java SE 6.Существует множество различных реализаций Java, и не гарантируется, что каждая реализация демонстрирует одинаковое поведение (например, увеличение размера с шагом 50%), если это не задокументировано / не требуется в интерфейсе этого метода.