Inheemse Container Klassen
De Gambas interpreter biedt twee typen van inheemse container klassen:
Arrays
Een array is een set van waarden die geïndexeerd zijn door een
Integer die opeenvolgend in het geheugen staan.
Alle waarden in een array hebben hetzelfde datatype, en er is een array klasse voor elk ingebouwd datatype, behalve voor het type
Boolean.
Zie ook
Native Arrays voor meer informatie daarover.
Arrays kunnen multi-demensionaal zijn, ttz waarden worden geïndexeerd door meer dan één
Integer.
Als een array één dimensie heeft dan kan hij dynamisch uitgebreid of verkleind worden met de
Resize methode.
Collections
Een
Collection is a set of values indexed by a
String.
Only
Variant values can be stored in a
Collection.
The values are internally stored in a hash table that grows dynamically
when more and more elements are inserted in it.
Which one use ?
Here is a short comparison between the three kind of container classes:
Container Comparison Chart
|
Array
|
Collection
|
Internal storage
|
One memory block.
|
Hash table.
It means one array of slots, each one being a linked list of values having the same hash code.
|
Key datatype
|
Integer
|
String
|
Access speed
|
Immediate
The access is immediate.
|
Fast
The key must be compared with all other keys having the same hash code.
|
Insertion speed
|
Immediate or Slow
The memory block is sometimes resized if needed. And inserting in the middle of
the array needs moving part of the memory block.
|
Fast or Slow
The key hash code gives a index into a linked list of memory slots.
The hash table have to be resized and recalculated sometimes
to keep the access fast.
|
Deletion speed
|
Immediate or Slow
The memory block is sometimes resized if needed. And deleting in the middle of
the array needs moving part of the memory block.
|
Fast or Slow
Once the element is found, the deletion is immediate.
The hash table have to be resized and recalculated sometimes
to keep the access fast.
|
Zie ook