Sobes.tech
Junior — Middle

Hogyan valósul meg a dinamikus bővítés lehetősége az ArrayList-ben, és miért lehet tetszőleges számú elemet beletenni?

sobes.tech MI

Válasz az MI-től

A ArrayList Java-ban egy olyan tömbön alapul, amely kezdetben fix méretű. Amikor a elemek száma meghaladja a belső tömb aktuális méretét, akkor annak bővítése történik: egy nagyobb méretű új tömb jön létre, és minden elem átkerül bele.

Ez lehetővé teszi tetszőleges számú elem beszúrását, mivel az ArrayList dinamikusan növeli a kapacitását szükség szerint.

Egyszerűsített bővítési logika példája:

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

Így, az elemek hozzáadásakor a ensureCapacity hívódik, és ha a jelenlegi tömb tele van, akkor egy nagyobb méretű új jön létre, ami biztosítja a dinamikus bővítést.