本地容器类
Gambas解释器提供两种类型的本地容器类:
数组
一个数组是一组用整数索引的值,它们在内存中连续存放。
数组中所有的值有相同的数据类型,对于每一个本地数据类型都有一个数组类,
Boolean类型除外。
更多信息请看
本地数组。
数组可以是多维的,也就是说,用于索引的整数个数大于1。
如果数组是一维的,它可以用
Resize动态的收缩或者扩张。
集合
一个
集合是一组用一个
字符串索引的值。
只有
Variant类型的值能够存储于
集合中。
数值存储于哈希表内部,当越来越多的成员插入进来时,哈希表会动态的增长。
容器比较
关于两种容器类的简短比较:
容器比较表
|
数组
|
集合
|
内存
|
一个内存块。
|
哈希表。
一组内存单元,每一个是有相同哈希代码的值的列表的一个链接。
|
索引键数据类型
|
整数
|
字符串
|
访问速度
|
立即的
直接访问
|
快速的
键必须和其他每个有相同哈希代码的键值进行比较。
|
插入速度
|
立即的 或者 慢的
有时需要改变内存块大小。如果插入发生在数组中部,需要移动部分内存块。
|
快速的 或者 慢的
哈希代码键给出了一个进入内存单元链接列表的索引。
不得不改变哈希表的大小,而且有时还要重新计算以保证快速访问。
|
删除速度
|
立即的 或者 慢的
有时需要改变内存块大小。如果删除发生在数组中部,需要移动部分内存块。
|
快速的 或者 慢的
一旦找到成员,立即删除。
不得不改变哈希表的大小,而且有时还要重新计算以保证快速访问。
|
参见