21 sept. 2015, 18:38

Que tu utilises un tableau ou plusieurs boolean, si ça crash c’est pas la structure de données qui est foireuse, c’est ton code.
Créer plusieurs boolean n’est pas une bonne idée, car d’un point de vue programmation tu ne pourra pas faire de boucle, tu ne pourra pas retourner l’ensemble de tes permis via un getter etc… Bref, ça t’impose énormément de limite. D’un point de vue JVM, tu fragmentes la mémoire inutilement.

Un tableau c’est bien si tu connais d’avance sa taille.
Une List, se décompose en 2 implémentations : l’ArrayList et la LinkedList.
Une ArrayList se base sur un tableau dont la taille est multiplié par 2 dès qu’un ajout dépasse le nombre de case.
Une LinkedList c’est une chaine d’élément. C’est a dire que l’élément 1 possède un lien vers l’élément 0 et l’élément 2 etc…

ArrayList ou LinkedList ? ça dépend :

  • Si tu veux accédez a l’élément i et qu’il est au milieu de ta liste

ArrayList : Tu peux y accéder directement.
LinkedList : Tu dois parcourir la moitié de ta liste.

  • Si tu ajoute un élément à la moitié de ta liste (idem pour la suppression)

ArrayList : Tu recopies les éléments suivant a la case n+1, un par un.
LinkedList : Tu insert directement l’élément en modifiant juste le chainage

En gros :

Structure de donnée : Accès random / Modification
ArrayList :  +++ / +
LinkedList : + / +++