Назад к вопросам
Aston
Junior — Middle
120
Какую структуру данных используют для реализации динамического массива подобного ArrayList?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Динамический массив, подобный ArrayList в Java, реализован на основе обычного массива. Основная идея в том, что при достижении текущего размера массива происходит выделение нового массива с увеличенной емкостью (обычно в 1.5–2 раза больше), и все элементы копируются в него.
Это позволяет эффективно добавлять элементы без частого выделения памяти, сохраняя при этом быстрый доступ по индексу.
Пример упрощённой логики:
class SimpleArrayList<E> {
private Object[] data;
private int size = 0;
public SimpleArrayList() {
data = new Object[10];
}
public void add(E element) {
if (size == data.length) {
Object[] newData = new Object[data.length * 2];
System.arraycopy(data, 0, newData, 0, data.length);
data = newData;
}
data[size++] = element;
}
public E get(int index) {
if (index >= size || index < 0) throw new IndexOutOfBoundsException();
return (E) data[index];
}
}