Documentation de Gambas - /cat/container

/cat/container
Le page anglaise est plus récente.

# 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 caratè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 redimmensionné si nécessaire. Supprimer dans le milieu du tableau nécéssite 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 supression | Immédiate ou Lente Le bloc mémoire est parfois redimmensionné si nécessaire. Supprimer dans le milieu du tableau nécéssite 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

- Byte[]

- Short[]

- Integer[]

- Long[]

- Single[]

- Float[]

- Date[]

- String[]

- Object[]

- Variant[]

- Collection