Junior — Middle
Akú dátovú štruktúru používajú na implementáciu dynamického poľa podobného ArrayListu?
sobes.tech AI
Odpoveď od AI
Dynamický poľ, podobný ArrayList v Jave, implementovaný na základe obyčajného poľa. Hlavná myšlienka je, že pri dosiahnutí aktuálnej veľkosti poľa je alokované nové pole s navýšenou kapacitou (zvyčajne 1,5-2 krát väčšie), a všetky prvky sú do neho skopírované.
Toto umožňuje efektívne pridávanie prvkov bez častých alokácií pamäte, pričom si zachováva rýchly prístup podľa indexu.
Príklad zjednodušenej logiky:
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];
}
}