Skip to content

Collection

Ambroise Mostin edited this page Aug 4, 2020 · 2 revisions

A.6 Collection : Présentation de la ou des structures de données utilisées dans le projet et justification de leur utilisation

Arrays

Ce sont des structures de donnée qui permettent de stocker des objets ou des types primitifs avec une taille prédéfinie.

J'ai utilisé des Arrays pour contenir les formules tarifaires, le nom des voitures, les voitures, etc car:

  • J'ai besoin d'une zone temporaire pour traiter les informations (dans une boucle de création du catalogue initiale par exemple)
  • Je peux prédire leurs taille
  • Je n'avais pas assez de connaissances pendant le développement pour choisir une autre structure de données lorsque j'avais besoin de zone mémoire avec un taille indéfinie (si je devais continuer à travailler sur ce projet, ce serais une des première amélioration que j'aimerais apporter)

ArrayList

C'est une structure de donnée qui permet de stocker des objets et d'y accéder via l'index. Cette implémentation fournit toutes les opérations de liste et autorise tous les éléments, y compris null.

J'ai utilisé une ArrayList pour contenir les voitures triés car:

  • Je peux stocker des objets Voiture
  • Je peux facilement le manipuler avec les index (pas besoin de clés précises)
  • Je peux utiliser Collections.sort()

Hashmap

C'est une structure de donnée qui permet principalement d'accéder aux valeurs par des index de type différent de int. Cette implémentation fournit toutes les opérations de map et autorise les valeurs nulles et un clé nulle.

J'ai utilisé une HashMap pour contenir le catalogue car:

  • Je veux pouvoir faire grandir la capacité du catalogue au maximum donc c'est pratique de ne pas devoir prédéfinir la taille
  • Je veux pouvoir stocker des objets Voiture et y accéder via une clé précise
  • Je veux pouvoir laisser la possibilité de stocker des clé-valeurs pour des futures améliorations
  • Je veux pouvoir contrôler le stockage via des clés plutôt que des index
  • Les performances sont constante quand il s'agit d'opérations basiques telles que get et put que j'utilise assez fréquemment

exemple HashMap

Clone this wiki locally