Gambas Documentation
Aperçu du Langage
Assign
Boucle d'évènements
Chemins de Fichiers & Répertoires
Classes de conteneur natives
Constantes du langage
Constantes prédéfinies
Déclaration d'énumération
Déclaration d'évènement
Déclaration de constante
Déclaration de méthode
Déclaration de propriété
Déclaration de structure
Déclaration de tableau
Déclaration de variable locale
Déclaration de variables
Entiers
Expressions
Fonctions arithmétiques
Fonctions associées aux fichiers et dossiers
Fonctions de chaîne de caractères
Fonctions de conversion
Fonctions de date et de temps
Fonctions de flux et d'entrée/sortie
Fonctions de formatage
Fonctions de Localisation et Traduction
Fonctions de manipulation de bits
Fonctions de nombres aléatoires
Fonctions de test des caractères
Fonctions de type de données
Fonctions diverses
Fonctions et structures de contrôle
Fonctions intrinsèques
Fonctions logarithmiques et exponentielles
Fonctions trigonométriques
Formats définis par l'utilisateur
Gestion d'erreurs
Gestion des événements
Gestion des fonctions externes
Gestion des objets et des classes
Gestion des processus
Gestionnaires d'évènements globaux
Le modèle objet de Gambas
Méthodes de comparaison
Méthodes spéciales
Nombres
Nombres flottants
Opérateurs arithmétiques
Opérateurs d'affectation
Opérateurs de chaînes de caractères
Opérateurs logiques
Ordre d'évaluation des opérateurs
Représentation binaire des données
Structures de contrôle de boucles
Structures de contrôle diverses
Syntaxe des modes de fichier
Tableaux natifs
Tracés
Types de données
Utilisation des mots réservés comme identificateur
À traduire
Code Snippets
Comment faire ...
Compilation et installation
Composants
Controls pictures
Derniers changements
Dépôt d'applications
Documentation de l'Environnement de développement
Documentation des développeurs
Documents
Indenter
Index de tous les Documents
Index du langage
Lexique
LISEZ-MOI
Manuel du wiki
Messages d'erreur
Tutoriels
Wiki License

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