ALI

vendredi 31 janvier 2014

Qu'est-ce qu'un ArrayList?

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.