Classes Conteineres Nativas
O interpretador Gambas te oferece dois tipos de classes conteineres nativas:
Arrays
Um array é um conjunto de valores indexados por um
Integer que
se localizam em posições consecutivas na memória.
Todos os valores em um array têm o mesmo tipo de dado, e existe uma classe array para cada tipo
de dado nativo, exceto para o tipo
Boolean.
Veja
Arrays Nativos para mais informações.
Arrays podem ser multi-dimensionais, i.e. valores são indexados por mais de um
Integer.
Se um array tem uma dimensão, então ele pode ser encolhido ou expandido dinamicamente, com o
método
Resize.
Collections
Uma
Collection é um conjunto de valores indexados por uma
String.
Somente valores
Variant podem ser armazenados em uma
Collection.
Os valores são armazenados internamente em uma tabela hash que cresce dinamicamente
quando mais e mais elementos são inseridos nela.
Qual usar?
Eis uma comparação rápida entre os três tipos de classes conteineres:
Tabela de comparação de conteineres
|
Array
|
Collection
|
Armazenamento interno
|
Um bloco de memória.
|
Tabela hash.
Significa um array de slots, cada um sendo uma lista encadeada de valores que possuem o mesmo código hash.
|
Tipo de dado Chave
|
Integer
|
String
|
Velocidade de acesso
|
Imediato
O acesso é imediato.
|
Rápido
A chave deve ser comparada com todas as outras chaves que possuem o mesmo código hash.
|
Velocidade de inserção
|
Imediato ou Lento
O bloco de memória é às vezes redimensionado se necessário. E inserir no meio de
um array requer que parte do bloco de memória seja movida.
|
Rápido ou Lento
O código hash chave oferece um índice em uma lista encadeada de slots de memória.
A tabela hash deve ser redimensionada e recalculada de vez em quando
para manter o acesso rápido.
|
Velocidade de deleção
|
Immediato ou Lento
O bloco de memória é às vezes redimensionado se necessário. E deletar no meio de
um array requer que parte do bloco de memória seja movida.
|
Rápido ou Lento
Uma vez que o elemento seja encontrado, a deleção é imediata.
A tabela hash deve ser redimensionada e recalculada de vez em quando
para manter o acesso rápido.
|
Veja também