Junior — Middle
Koji koraci se preduzimaju za dodavanje novog elementa u strukturu ArrayList?
sobes.tech АИ
Одговор од АИ
Prilikom dodavanja novog elementa u ArrayList, sledeći koraci se izvršavaju:
- Proverava se da li je trenutni unutrašnji niz (obično Object[]) dovoljno velik za smeštaj novog elementa.
- Ako nema dovoljno mesta, kreira se novi niz sa povećanom veličinom (obično za 50% ili 1.5 puta veći), i svi elementi se kopiraju u njega.
- Novi element se postavlja na prvu slobodnu poziciju unutar unutrašnjeg niza.
- Brojač veličine liste (size) se povećava.
Evo kako se obično dodaje element:
public boolean add(E e) {
ensureCapacityInternal(size + 1); // provera i proširenje niza
elementData[size++] = e; // dodavanje elementa i povećanje veličine
return true;
}
private void ensureCapacityInternal(int minCapacity) {
if (minCapacity - elementData.length > 0)
grow(minCapacity);
}
private void grow(int minCapacity) {
int oldCapacity = elementData.length;
int newCapacity = oldCapacity + (oldCapacity >> 1); // povećanje za 50%
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
elementData = Arrays.copyOf(elementData, newCapacity);
}