本地容器类

Gambas解释器提供两种类型的本地容器类:

数组

一个数组是一组用整数索引的值,它们在内存中连续存放。

数组中所有的值有相同的数据类型,对于每一个本地数据类型都有一个数组类,Boolean类型除外。

更多信息请看本地数组

数组可以是多维的,也就是说,用于索引的整数个数大于1。

如果数组是一维的,它可以用Resize动态的收缩或者扩张。

集合

一个集合是一组用一个字符串索引的值。

只有Variant类型的值能够存储于集合中。

数值存储于哈希表内部,当越来越多的成员插入进来时,哈希表会动态的增长。

容器比较

关于两种容器类的简短比较:

容器比较表

数组 集合
内存 一个内存块。 哈希表。

一组内存单元,每一个是有相同哈希代码的值的列表的一个链接。
索引键数据类型 整数 字符串
访问速度 立即的

直接访问
快速的

键必须和其他每个有相同哈希代码的键值进行比较。
插入速度 立即的 或者 慢的

有时需要改变内存块大小。如果插入发生在数组中部,需要移动部分内存块。
快速的 或者 慢的

哈希代码键给出了一个进入内存单元链接列表的索引。

不得不改变哈希表的大小,而且有时还要重新计算以保证快速访问。
删除速度 立即的 或者 慢的

有时需要改变内存块大小。如果删除发生在数组中部,需要移动部分内存块。
快速的 或者 慢的

一旦找到成员,立即删除。

不得不改变哈希表的大小,而且有时还要重新计算以保证快速访问。

参见