Classi contenitore native
L' interprete Gambas, offre due tipi di classi di contenitori nativi:
Arrays (Matrici):
Un array è un set di valori indicizzati da un numero intero (
Integer) consecutivi in memoria.
Tutti i valori contenuti in un array hanno lo stesso tipo di dato, esiste un array specifico per ogni tipo di dato ad eccezione del tipo booleano (
Boolean).
Fare riferimento ad
Array nativi per ulteriori informazioni.
Gli arrays possono essere multidimensionali, in questo caso i suoi valori sono indicizzati da più di un' intero (
Integer).
Se un array ha una
sola dimensione, allora esso può essere compattato o espanso in modo dinamico con il metodo (
Resize ). Ciò significa che è possibile la sua modica mentre il programma sta girando.
Collezioni:
Una collezione (
Collection) è un set di valori indicizzati da una stringa (
String) che ne è la sua chiave.
Solamente valori
Variant posso essere memorizzati in una collezione.
Questi valori sono memorizzati internamente in una tabella di tipo hash che si ridimensiona automaticamente quando uno o più elementi vengono inseriti o tolti.
Quale usare:
Questa è una breve comparazione fra i due tipi di classe contenitore:
Comparazione classi contenitore.
|
Array
|
Collection
|
Memorizzazione interna
|
Una memoria a blocchi.
|
Una tabella Hash.
Significa un'array (una matrice) di contenitori, ognuno dei quali contiene una lista concatenata di valori aventi lo stesso codice hash.
|
Tipo di chiave
|
Intero (Integer).
|
Stringa (String).
|
Velocità d'accesso
|
Immediata
L'accesso è immediato.
|
Veloce
La chiave deve essere confrontata con tutte le altre chiavi che hanno lo stesso codice hash.
|
Velocità d'inserimento
|
Immediata o Lenta
Il blocco di memoria viene a volte ridotto se necessario. E inserendolo nel mezzo all'array si rendono necessari spostamenti di blocchi di memoria che degradano le prestazioni.
|
Veloce o Lenta
La chiave del codice hash, un indice della lista concatenata nello slot di memoria.
Questa tabella viene ricalcolata ed eventualmente ridimensionata rendendo possibile un degrado delle prestazioni.
|
Velocità di cancellazione
|
Immediata o Lenta
Il blocco di memoria viene a volte ridimensionato se necessario dovendo cancellare un blocco di memoria al suo interno.
|
Veloce o Lento
Una volta che l'elemento viene trovato, la cancellazione è immediata.
La tabella hash deve a volte essere ridimensionata e ricalcolate per poter garantire un' accesso rapido
|
Vedi anche