Classes de conteneur natives
L'interpréteur Gambas vous offre deux sortes de classes natives de conteneur :
Les tableaux (Array)
Un tableau est un ensemble de valeurs indexées par un entier (integer) qui sont consécutives en mémoire.
Toutes les valeurs dans un tableau sont de même type et il y a une classe de tableau pour chaque type de donnée native, exceptée booléenne (boolean).
Voir
Tableaux natifs pour plus d'informations.
Les tableaux peuvent être multi-dimensionnels, c.a.d. les valeurs sont indexées par plusieurs entiers.
Si un tableau n'a qu'une dimension, alors il peut être dynamiquement réduit ou étendu avec la méthode
Resize.
Les collections
Une
Collection est un ensemble de valeurs indexées par une chaîne de caractères(
String).
Seules les valeurs de type
Variant peuvent être stockées dans une
Collection.
Les valeurs sont stockées en interne dans une table de hachage qui grandit dynamiquement lorsque des éléments y sont insérés.
Laquelle utiliser ?
Voici une courte comparaison entre les trois types de classe de conteneur :
Tableau de comparaison des conteneurs
|
Array
|
Collection
|
Stockage interne
|
Un bloc mémoire.
|
Table de hachage.
Désigne un tableau d'emplacements, chacun derrière une liste de valeurs liées ayant le même code de hachage.
|
Type de donnée de la clé
|
Integer
|
String
|
Vitesse d'accès
|
Immédiat
L'accès est immédiat.
|
Rapide
La clé doit être comparée avec toutes les autres clés ayant le même code de hachage.
|
Vitesse d'insertion
|
Immédiate ou Lente
Le bloc mémoire est parfois redimensionné si nécessaire.
Supprimer dans le milieu du tableau nécessite le déplacement d'une partie du bloc mémoire.
|
Rapide ou Lente
La clé de hachage donne un index dans une liste liée d'emplacements mémoire.
La table de hachage a parfois besoin d'être redimensionnée et recalculée pour maintenir un accès rapide.
|
Rapidité de suppression
|
Immédiate ou Lente
Le bloc mémoire est parfois redimensionné si nécessaire.
Supprimer dans le milieu du tableau nécessite le déplacement d'une partie du bloc mémoire.
|
Rapide ou Lent
Une fois l'élément trouvé, la suppression est immédiate.
La table de hachage a parfois besoin d'être redimensionnée et recalculée pour maintenir un accès rapide.
|
Voir aussi