Qu'est-ce qu'un tableau dynamique?
Un tableau dynamique est une structure de données utilisée dans la programmation informatique qui contient plusieurs objets informatiques sous forme de groupe unique et peut être redimensionnée à volonté pour s'adapter à un nombre variable d'objets. Le groupe est contenu dans un seul bloc de mémoire contigu, de sorte que l'accès aux éléments est efficace et rapide. Les tableaux dynamiques sont également appelés vecteurs ou listes, en fonction du langage informatique dans lequel ils sont utilisés. Malgré ces noms, une liste ou un vecteur particulier peut ne pas être un tableau dynamique, car les listes et les vecteurs peuvent être implémentés différemment des tableaux et les uns des autres.
C ++ contient une seule classe de tableau dynamique appelée vecteur, qui réside dans un groupe de classes appelé bibliothèque de modèles standard. Le tableau qui sauvegarde cette classe est accessible par des itérateurs ou par des index. Sa capacité à redimensionner à la demande est un avantage considérable, mais elle peut entraîner les programmeurs dans un faux sentiment de sécurité, car elle n’est pas aussi robuste qu’elle ne le semble. Le tableau dynamique sauvegardant un vecteur ne peut pas garantir la validité des demandes d'accès. Comme les tableaux statiques, les tableaux dynamiques peuvent présenter des problèmes de vérification des limites et de corruption de la mémoire si un programme tente d'accéder à de la mémoire qui ne leur a pas été allouée.
Java contient trois classes de tableaux dynamiques distinctes: Vector, ArrayList et CopyOnWriteArrayList. Les index du tableau n'accèdent qu'aux éléments. Les tentatives d'accès aux index en dehors du tableau n'entraînent généralement pas de problèmes de corruption de la mémoire. La classe Java Vector est à peu près équivalente à la classe de vecteur C ++ et n'est pas synchronisée pour permettre l'accès par plusieurs threads. ArrayList et CopyOnWriteArrayList, en revanche, sont thread-safe. CopyOnWriteArrayList est la classe qui demande le plus de travail, car elle recrée complètement le tableau dynamique chaque fois qu'une nouvelle valeur est écrite dans le tableau.
Les matrices dynamiques sont implémentées essentiellement de la même manière, quel que soit le langage informatique utilisé. Toutefois, en fonction du langage, d'autres fonctionnalités peuvent être intégrées. Comme les tableaux statiques, les tableaux dynamiques ne limitent pas le type d'objet pouvant être stocké à l'intérieur d'eux, tant qu'ils sont tous du même type d'objet. Un programmeur n'a jamais besoin d'accéder directement à un tableau dynamique; cela peut toujours être fait via une classe qui enveloppe le tableau pour une utilisation facile. Une utilisation appropriée de ces tableaux peut aider le programmeur à organiser le code dans l'organisation des données et à créer un code compréhensible se prêtant facilement à la maintenance.