Sobes.tech
Junior — Middle

Quelles étapes sont suivies pour ajouter un nouvel élément à la structure ArrayList?

sobes.tech IA

Réponse de l'IA

Lors de l'ajout d'un nouvel élément à ArrayList, les étapes suivantes sont effectuées:

  1. Vérification si le tableau interne actuel (généralement Object[]) est suffisamment grand pour contenir le nouvel élément.
  2. Si l'espace n'est pas suffisant, un nouveau tableau avec une taille augmentée (généralement de 50% ou 1,5 fois plus grand) est créé, et tous les éléments sont copiés dedans.
  3. Le nouvel élément est placé à la première position libre du tableau interne.
  4. Le compteur de taille de la liste (size) est incrémenté.

Voici comment l'ajout d'un élément se fait généralement:

public boolean add(E e) {
    ensureCapacityInternal(size + 1);  // vérification et extension du tableau
    elementData[size++] = e;            // ajout de l'élément et augmentation de la taille
    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); // augmentation de 50%
    if (newCapacity - minCapacity < 0)
        newCapacity = minCapacity;
    elementData = Arrays.copyOf(elementData, newCapacity);
}