Comprendre l'objectif de l'initialisation de la taille d'ArrayList
La classe Java ArrayList offre la flexibilité de spécifier une taille initiale lors de la création. Cependant, on ne comprend souvent pas pourquoi cela est nécessaire si vous ne pouvez pas accéder immédiatement à l'espace alloué. Cette question approfondit la distinction entre la taille et la capacité d'une ArrayList pour clarifier cette question.
Taille initiale par rapport à la capacité
Lors de l'initialisation d'une ArrayList avec la nouvelle ArrayList< >(10), vous ne définissez pas sa taille mais sa capacité. La capacité fait référence au nombre d'éléments que l'ArrayList peut contenir sans avoir à réaffecter sa structure de données sous-jacente. En définissant une capacité initiale, vous optimisez les performances en évitant les réallocations inutiles lorsque vous ajoutez des éléments.
Ajout d'éléments
Contrairement à votre hypothèse, add(int index, Object element ) ajoute en effet un élément à l'index spécifié. Toutefois, cela nécessite que la liste ait une capacité suffisante pour accueillir le nouvel élément. Lorsque vous essayez arr.add(5, 10), vous recevez une exception hors limites car ArrayList n'a pas encore d'éléments, ce qui entraîne une capacité vide.
Exemple : initialisation et remplissage d'un ArrayList
Pour initialiser une ArrayList d'une capacité de 10 et la remplir d'éléments, vous pouvez utiliser une boucle :
<code class="java">ArrayList<Integer> arr = new ArrayList<>(10); for (int i = 0; i < 10; i++) { arr.add(0); }</code>
Maintenant, vous pouvez modifier ou récupérer des éléments aux indices 0 à 9, en utilisant la capacité initiale que vous avez définie.
En résumé, définir une capacité initiale pour une ArrayList permet d'optimiser les performances en évitant les frais de réallocation à mesure que votre liste s'allonge. Bien que la taille initiale d'une ArrayList soit nulle, la capacité garantit qu'il y a suffisamment d'espace disponible pour accueillir efficacement les éléments suivants.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!