Sobes.tech
Junior — Middle

Hoe is de mogelijkheid tot dynamische uitbreiding van de array in ArrayList geïmplementeerd en waarom kunt u er een willekeurig aantal elementen in plaatsen?

sobes.tech AI

Antwoord van AI

ArrayList in Java is gebaseerd op een array die aanvankelijk een vaste grootte heeft. Wanneer het aantal elementen de huidige grootte van de interne array overschrijdt, wordt deze uitgebreid: er wordt een nieuwe array met grotere grootte gemaakt en alle elementen worden daarin gekopieerd.

Dit maakt het mogelijk om een willekeurig aantal elementen toe te voegen, omdat ArrayList de capaciteit dynamisch vergroot indien nodig.

Voorbeeld van een vereenvoudigde uitbreidingslogica:

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);
    }
}

Op deze manier wordt bij het toevoegen van elementen ensureCapacity aangeroepen, en als de huidige array vol is, wordt een nieuwe, grotere array gemaakt, wat een dynamische uitbreiding garandeert.