Une liste de
tableaux dans la programmation informatique est une structure de données qui se
comporte comme un réseau d'ordinateur met en œuvre, mais aussi l'aptitude à
croître de façon dynamique la taille de la matrice en fonction des besoins.
Contrairement à un tableau de données de type intrinsèque, qui ne peut être
redimensionnée pendant l'exécution du programme, la structure de liste de
tableaux peut croître et réduire la taille de la matrice en réponse à
l'addition ou la suppression d'éléments. Il a un profil de performance très
favorable, ce qui permet un accès rapide à la collection aléatoire de données.
Il existe deux cas, toutefois, dans laquelle elle est plus lente que d'autres
structures de données, à savoir l'addition et l'élimination d'éléments du
milieu de la rangée. La plupart des langages de programmation orientés objet
ont un certain type de mise en œuvre d'une telle liste, mais ils sont parfois
appelés des tableaux dynamiques.
L'utilisation
d'un ArrayList fournit un programme avec la possibilité d'accéder à des objets
de données avec un numéro d'index instantanément au lieu d'avoir à marcher à
travers une séquence entière de données pour trouver une adresse, qui est
nécessaire listes chaînées. Avec la possibilité d'augmenter la taille du
tableau que nécessaire, c'est une approche très équilibrée qui tient compte à
la fois la flexibilité et la vitesse. En outre, lorsque des éléments sont
supprimés de cette liste, la taille du tableau est réduite, libérant de
l'espace mémoire.
Un avantage
d'utiliser une liste de tableaux sur d'autres structures de données est qu’un
objet de wrapper n'est pas nécessaire pour contenir les données stockées. Dans
le cas d'une liste chaînée ou une table de hachage, un objet séparé est
généralement nécessaire de maintenir la technique utilisée pour contenir et
manipuler la collection. Avec une liste de tableaux, la seule information
nécessaire sur les objets de données est l'adresse de l'objet en mémoire. Cela
signifie qu'il y aura moins d'utilisation de la mémoire en tête lorsque l'on
travaille avec ce type de liste.
Un problème
potentiel avec l'aide d'une liste de tableaux peut provenir du système de
gestion de mise en œuvre et de la mémoire. La plupart des tableaux sont
répartis comme emplacements de mémoire consécutifs. Donc, pour utiliser une
liste de tableaux d'une certaine taille, à moins que la quantité de mémoire doive
être disponible dans une séquence ininterrompue de blocs. Le tableau dynamique peut
se redimensionner plusieurs fois, donc la fragmentation de mémoire peut se
produire et conduire à un échec d'allocation de mémoire, l'arrêt de l'exécution
du programme.
Les performances
d'une liste de tableaux est similaire à celle de l'utilisation d'une matrice
standard, bien que les temps d'accès sont un peu plus lente parce que la
matrice est encapsulée dans un objet. Un exemple dans lequel un tableau
dynamique peut ralentir considérablement, en fonction de l'application, est
lorsque la taille de la matrice qui doit être changé. Il peut s'agir de la
copie de la gamme actuelle dans un nouveau tableau qui a été alloué à la
nouvelle taille souhaitée, entraînant une dégradation temporaire des
performances. Le même problème peut être vécue lors de l'ajout ou la
suppression d'un élément à partir du milieu de la liste, ce qui provoque tous
les éléments suivants doivent être déplacés vers un nouvel emplacement.