Sobes.tech
Junior — Middle

Welche Schritte werden ausgeführt, um ein neues Element in die ArrayList-Struktur hinzuzufügen?

sobes.tech KI

Antwort von AI

Beim Hinzufügen eines neuen Elements zu ArrayList werden die folgenden Schritte ausgeführt:

  1. Es wird überprüft, ob das aktuelle interne Array (normalerweise Object[]) groß genug ist, um das neue Element aufzunehmen.
  2. Wenn nicht genügend Platz vorhanden ist, wird ein neues Array mit vergrößerter Größe (normalerweise um 50% oder 1,5 mal größer) erstellt, und alle Elemente werden hineinkopiert.
  3. Das neue Element wird an die erste freie Position im internen Array gesetzt.
  4. Der Zähler für die Größe der Liste (size) wird erhöht.

So sieht das Hinzufügen eines Elements typischerweise aus:

public boolean add(E e) {
    ensureCapacityInternal(size + 1);  // Überprüfung und Erweiterung des Arrays
    elementData[size++] = e;            // Hinzufügen des Elements und Erhöhung der Größe
    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); // Erhöhung um 50%
    if (newCapacity - minCapacity < 0)
        newCapacity = minCapacity;
    elementData = Arrays.copyOf(elementData, newCapacity);
}