Junior — Middle
Welke stappen worden uitgevoerd om een nieuw element aan de ArrayList-structuur toe te voegen?
sobes.tech AI
Antwoord van AI
Bij het toevoegen van een nieuw element aan ArrayList worden de volgende stappen uitgevoerd:
- Er wordt gecontroleerd of de huidige interne array (meestal Object[]) groot genoeg is om het nieuwe element op te slaan.
- Als er niet genoeg ruimte is, wordt een nieuwe array gemaakt met een vergrote grootte (meestal 50% of 1,5 keer groter), en alle elementen worden daarin gekopieerd.
- Het nieuwe element wordt geplaatst op de eerste vrije positie in de interne array.
- De teller van de grootte van de lijst (size) wordt verhoogd.
Zo wordt een element meestal toegevoegd:
public boolean add(E e) {
ensureCapacityInternal(size + 1); // controleer en vergroot de array
elementData[size++] = e; // voeg het element toe en verhoog de grootte
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); // 50% vergroting
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity;
elementData = Arrays.copyOf(elementData, newCapacity);
}