Ce qui est signifié par le paramètre (int capacité initiale) dans une arraylist
Ce qui est signifié par le paramètre (int initialCapacity)
dans un ArrayList
, je pensais que c'est le nombre d'éléments, mais il ne fonctionne pas quand je l'ai fait:
public class MyClass {
private ArrayList<Integer> arr;
public MyClass(int n_elements) {
arr = new ArrayList<Integer>(n_elements);
}
}
OriginalL'auteur Ismail Marmoush | 2010-11-13
Vous devez vous connecter pour publier un commentaire.
C'est la capacité initiale, c'est à dire le nombre d'éléments qui
ArrayList
va allouer pour commencer comme le stockage interne des éléments.ArrayList
peut contenir "nombre d'éléments" (tant que vous avez la mémoire pour elle) et quand on fait de gros insertions, vous pouvez direArrayList
d'allouer un plus grand stockage pour commencer comme de ne pas perdre de cycles de PROCESSEUR lorsqu'il tente d'allouer plus d'espace pour l'élément suivant.Exemple:
gr8 réponse merci beaucoup 🙂 , j'aime stackoverflow !!!
Je récuse le mot "défaut" dans la première phrase. Le par défaut nombre est la taille allouée si vous ne pas mettre un nombre entre parenthèses.
Vous êtes correct. Changé pour capacité initiale, comme pour se conformer à la Java docs.
Pour être plus précis: quel que soit le nombre d'articles est limité à
Integer.MAX
en raison du fait que les tableaux en java sont indexés par des entiers (à compter de la version 6 de Java).OriginalL'auteur Patrick
Pratiquement parlant, c'est la façon dont beaucoup d'éléments que vous pouvez ajouter à la
ArrayList
avant qu'il redimensionne en arrière-plan, qui peut vous faire gagner quelques cycles si elle est utilisée correctement.OriginalL'auteur Carl
Capacité est la taille de la mémoire de stockage interne des objets. Le stockage interne est toujours supérieure ou égale à la taille() de la liste (de sorte qu'il peut contenir tous les éléments).
L'exécution de cette donne:
OriginalL'auteur dacwe
Sous le capot,
ArrayList
est essentiellement un tableau dynamique. Chaque fois que vous instanciez à l'aide denew Arraylist<>()
ce qui se passe c'est qu'un tableau est créé pour contenir les valeurs que vous souhaitez stocker, dont la capacité défaut, à ne pas confondre avec la taille, est de 10.Chaque fois que vous ajoutez une valeur qui permettrait d'augmenter la taille au-delà de la capacité d'un nouveau tableau est créé, dont la capacité est l'un de plus de 150% de la capacité précédente avec le contenu du tableau précédent copié à l'intérieur.
Si vous avez une idée générale de ce que la taille de la liste, ou sont certains, mais le désir de la flexibilité de l'utilisation de arraylists sur des tableaux vous pouvez définir la capacité d'empêcher ce processus répétitif de la création de nouveaux tableaux, de copier le contenu de l'ancien tableau dans le nouveau, et se débarrasser de l'ancienne -- qui va augmenter dans les événements proportionnelle à la taille de la liste.
OriginalL'auteur Legato