Junior — Middle
ArrayList'te dinamik olarak genişleme özelliği nasıl uygulanmıştır ve neden içine rastgele sayıda öğe ekleyebilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
ArrayList в Java реализован на основе массива, который изначально имеет фиксированный размер. Когда количество элементов превышает текущий размер внутреннего массива, происходит его расширение — создаётся новый массив большего размера, и все элементы копируются в него.
Это позволяет вставлять произвольное количество элементов, так как ArrayList динамически увеличивает ёмкость по мере необходимости.
Пример упрощённой логики расширения:
private void ensureCapacity(int minCapacity) {
if (minCapacity > elementData.length) {
int newCapacity = elementData.length * 3 / 2 + 1;
if (newCapacity < minCapacity) {
newCapacity = minCapacity;
}
elementData = Arrays.copyOf(elementData, newCapacity);
}
}
Таким образом, при добавлении элементов вызывается ensureCapacity, и если текущий массив заполнен, создаётся новый, большего размера, что обеспечивает динамическое расширение.