Maison  >  Article  >  Java  >  Pourquoi ne puis-je pas accéder aux espaces alloués dans une ArrayList lors de la spécification d'une taille initiale ?

Pourquoi ne puis-je pas accéder aux espaces alloués dans une ArrayList lors de la spécification d'une taille initiale ?

DDD
DDDoriginal
2024-11-03 15:25:30813parcourir

Why can't I access allocated spaces in an ArrayList when specifying an initial size?

Comprendre la capacité d'une ArrayList par rapport à la taille

Q : Pourquoi ne pouvez-vous pas accéder initialement aux espaces alloués à une ArrayList si vous spécifiez une taille initiale ?

A : La confusion vient d'une mauvaise compréhension de la différence entre la taille et la capacité d'une ArrayList.

La taille d'une ArrayList indique le nombre d'éléments qu'elle contient, tandis que la capacité représente le maximum nombre d'éléments qu'il peut contenir avant de devoir allouer plus de mémoire. La définition d'une capacité initiale optimise les performances en pré-allouant de l'espace pour un certain nombre d'éléments, mais elle ne remplit pas automatiquement la liste avec autant d'éléments.

Par exemple, lorsque vous créez une ArrayList avec une capacité initiale de 10, la liste est initialement vide et tenter d'ajouter un élément à l'index 10 entraînera une exception hors limites.

Pour ajouter des éléments à ArrayList, vous devez utiliser la méthode add, en spécifiant le index où l’élément doit être inséré. Si vous souhaitez remplir la liste avec 10 éléments, vous pouvez utiliser une boucle :

for (int i = 0; i < 10; i++) {
  arr.add(0);
}

En utilisant cette technique, vous pouvez ajouter 10 éléments puis les manipuler aux indices 0 à 9 sans problèmes de limites.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn