Fonction Java ArrayList clear ()

disons que j'ai un ArrayList<String> data;

j'ajoute quelques données dans ce tableau, en utilisant data.add() fonction. Disons que j'ai ajouté 10 cordes dans ce tableau. La taille du tableau est maintenant de 10.

comment détruire tous les éléments du tableau? data.clear() la fonction vient de définir les 10 éléments à null. Donc, quand j'essaie d'ajouter un autre élément, il suffit d'obtenir sur la position 11. Je veux juste de commencer sur de 0;

je peux utiliser une boucle for pour remplacer toutes les données, mais je pense vraiment qu'il y a un moyen juste pour vider le ArrayList. S'agit-il?

31
demandé sur Roman C 2013-01-12 16:23:44

7 réponses

vos suppositions ne semblent pas correctes. Après un clear(), les données nouvellement ajoutées commencent à partir de l'indice 0.

60
répondu Dan D. 2013-01-12 12:26:12

Si vous avez le moindre doute, jetez un oeil au JDK code source

ArrayList.clear() code source:

public void clear() {
    modCount++;

    // Let gc do its work
    for (int i = 0; i < size; i++)
        elementData[i] = null;

    size = 0;
}

Vous allez voir que size est réglé à 0 donc vous commencez à 0 position.

veuillez noter que lorsque vous ajoutez des éléments à ArrayList, le tableau d'arrière-plan est étendu (c'est-à-dire que les données du tableau sont copiées sur un tableau plus grand si nécessaire) afin de pouvoir ajouter de nouveaux éléments. Lors de l'exécution d' ArrayList.clear() vous supprimez seulement les références aux éléments de tableau et les ensembles