Après tout, la classe d'implémentation de List qui est souvent utilisée est ArrayList. Voici trois points à garder à l'esprit car vous devez l'utiliser efficacement si vous l'utilisez de toutes vos forces.
ArrayList est une classe pour réaliser des tableaux de longueur variable. Il est implémenté en interne à l'aide de tableaux, mais les tableaux réguliers ont une longueur fixe. Donc, comment réaliser une longueur variable consiste à créer un nouveau tableau de plus grande taille et à y copier les données lorsque le tableau initialement préparé est insuffisant. De plus, lors de l'insertion de données au milieu, tous les éléments suivants sont copiés et décalés. À mesure que la taille du tableau augmente, le processus de régénération et de copie d'un tel tableau devient très lent, il est donc important d'empêcher un tel traitement de se produire afin d'utiliser ArrayList efficacement.
Vous pouvez spécifier la taille initiale dans le constructeur ArrayList. Étant donné que le tableau est généré en premier avec la taille initiale spécifiée, le tableau ne sera pas régénéré jusqu'à ce qu'il dépasse cette taille.
Par exemple, si le nombre d'éléments est de 100 au maximum, une ArrayList sera créée avec une capacité initiale de 100 en procédant comme suit.
List<String> list = new ArrayList<String>(100);
ensureCapacity ensureCapacity est une méthode pour garantir la taille de ArrayList. Il est utilisé lorsque la taille initiale spécifiée dans le constructeur est susceptible d'être largement dépassée. Par exemple, lors de l'ajout de 1000 éléments à une ArrayList initialisée avec une taille initiale de 100, si vous ajoutez 1000 fois normalement, la régénération peut se produire plusieurs fois au milieu, mais avec ensureCapacity, la taille est étendue à 1000 à l'avance. Si vous le faites, vous ne devez le faire qu'une seule fois.
trimToSize trimToSize est une méthode qui réduit la taille de ArrayList par le nombre actuel d'éléments. Par exemple, si une ArrayList initialisée avec une taille initiale de 1000 ne contient que 100 éléments, 900 zones seront gaspillées, vous pouvez donc tronquer cette zone pour la libérer. Bien sûr, la taille sera plus petite, donc si vous essayez d'ajouter un élément après cela, vous devrez réallouer le tableau. Par conséquent, il est recommandé de l'utiliser lorsque l'élément n'est pas ajouté dans le traitement suivant.
Recommended Posts