数组集合与哈希表
什么是数组?
数组是一种固定大小的容器,用于存储相同类型的数据。数组中的每个元素通过索引(下标)访问,索引从 0
开始。
数组的特点
-
固定大小:数组一旦创建,其大小不能改变。
-
相同类型:数组中的所有元素必须是相同的数据类型。
-
高效访问:通过索引可以直接访问数组中的元素,时间复杂度为 O(1)。
数组的作用
-
存储一组相同类型的数据。
-
适用于已知数据量且数据量固定的场景。
如何使用数组?
在轻语言中,数组的定义与声明 变量 的方式一样,因为数组本身也是一种数据类型。唯一的区别是声明数组时;需要在数据类型后面加上 []
用于表示这个变量为一个数组。
1.声明和初始化数组
' 声明一个整数数组
变量 数据1 为 整数型[]
' 初始化数组大小、创建一个大小为 5 的整数数组,该数组变量可以储存 5 个整数值
数据1 = 创建 整数型[5]
' 使用索引为数组中指定位置赋值,索引从0开始
数据1[0] = 100 ' 设置数组中第一个值为 100
数据1[1] = 300 ' 设置数组中第二个值为 300
数据1[2] = 666 ' 设置数组中第三个值为 666
针对基础数据类型;也可以使用更简单的方式声明数组并设置初始值:
' 创建一个数组变量并设置 4 个初始值
变量 数据2 = { 100,105,200,300 }
' 创建一个文本数组并设置2个初始值
变量 文本数据1 = { "vcn" , "studio" }
' 创建一个组件数组并设置其对象
变量 按钮组1 为 按钮[] = 创建 按钮[]{ 按钮1,按钮2,按钮3 }
' 创建一个可储存 10 个文本值的空数组变量
变量 数据3 为 文本型[] = 创建 文本型[10]
2.访问、修改数组元素
' 访问读取数组变量 数据1 中的第一个元素
调试输出("第一个元素:" + 数据1[0]) ' 输出 100
' 修改元素的值
数据1[1] = 999
调试输出("第二个元素:" + 数据1[1]) ' 输出 999
访问组件成员的属性,例如上方的 按钮组1
,如果通过数组下标设置数组中按钮成员的标题,需使用对应的属性函数。
属性函数是轻语言中兼容原生语言语法的一个扩展特性,该功能支持在非显示指定数据类型的条件下,使用对象的属性,函数,例如:使用拉姆达匿名参数对象、使用数组、集合中的对象等等。
属性函数的具体用法:
' 调用属性对应的函数赋值修改标题
按钮组1[0].标题("我是被修改的标题内容")
' 通过属性对应的函数获取标题内容
调试输出(按钮组1[0].标题())
属性函数与属性功能完全一样,只是语法略有不同,下方两种写法效果是完全一样的:
' 修改属性值
按钮1.标题 = "按钮1标题内容"
按钮1.标题("按钮1标题内容")
' 获取属性值
调试输出(按钮1.标题)
调试输出(按钮1.标题())
只是在属性名称后面使用括号表示函数、属性函数一般用于在未明确指定对象类型的场景使用。
3.遍历数组
变量循环(索引 = 0,取数组成员数(数据1),1)
调试输出( "成员值:" + 数据1[索引])
结束循环
什么是集合?
集合是轻语言中提供的一组动态大小的容器类,用于存储和操作一组对象。
集合的特点
-
动态大小:集合的大小可以动态调整。
-
存储对象:集合可以存储任意类型的对象。
-
丰富操作:集合提供了丰富的操作方法,如添加、删除、修改等。
集合的作用
-
存储一组对象,适用于数据量不确定或需要频繁增删的场景。
-
提供了高效的数据操作方法。
如何使用集合?
1.声明并创建集合
' 声明一个集合变量
变量 集合1 为 集合
' 创建集合对象、集合必须创建对象才能使用
集合1 = 创建 集合()
' 声明集合并同时创建集合
变量 集合2 = 创建 集合()
2.向集合中添加数据
' 添加数据到创建的集合中;可以添加任意数据
' 但实际开发时建议不同类型的数据值使用不同的集合储存
集合1.添加项目("VcnStudio")
集合1.添加项目("http://www.vcnstudio.com")
集合1.添加项目(100)
集合1.添加项目(按钮1)
3.访问集合元素
' 从集合中取出指定位置的值,索引从 0 开始
' 这里需注意储存的什么类型的值、取出时也需要使用对应变量接收
变量 成员1 为 文本型 = 到文本(集合1.取项目(0))
' 如果是组件、自定义数据类型;需要强制转换成对应类型
变量 储存的按钮1 = (按钮)集合1.取项目(3)
4.遍历集合
变量循环(索引 = 0,集合1.取项目数(),1)
调试输出(到文本(集合1.取项目(索引)))
结束循环
数组与集合的比较
特性 | 数组 | 集合 |
---|---|---|
大小 | 固定大小 | 动态大小 |
存储类型 | 相同类型 | 任意类型 |
性能 | 访问速度快 | 操作更丰富,但性能稍低 |
适用场景 | 数据量固定且已知 | 数据量不确定或需要频繁增删 |
什么是哈希表?
哈希表是一种数据结构,它通过键值对(Key-Value Pair)的方式存储数据。每个键(Key)通过哈希函数计算出一个哈希值,然后根据哈希值将数据存储在数组的特定位置(称为“桶”或“槽”)。
哈希表的特点
-
高效存取:通过哈希函数,可以在平均 O(1) 的时间复杂度内完成数据的插入、删除和查找。
-
键唯一:每个键在哈希表中是唯一的,重复的键会覆盖旧值。
-
无序性:哈希表中的数据是无序的。
哈希表的作用
-
快速查找:通过键快速查找对应的值。
-
数据去重:利用键的唯一性,可以用于去重操作。
-
缓存实现:哈希表常用于实现缓存。
-
统计频率:可以用于统计数据的频率(如统计单词出现的次数)。
如何使用哈希表?
1.创建哈希表
' 声明一个哈希表变量
变量 哈希表1 为 哈希表
' 创建哈希表实例对象
哈希表1 = 创建 哈希表()
' 声明并同时创建对象
变量 哈希表2 = 创建 哈希表()
2.添加键值对
哈希表1.添加项目("key1","苹果")
哈希表1.添加项目("key2","香蕉")
哈希表1.添加项目("key3","梨子")
' 哈希表可以储存任意数据值;取出式需转换
哈希表1.添加项目("按钮1",按钮1)
3.获取表中的值
' 哈希表是无序储存的,只能通过指定键值获取值
变量 键值 = 到文本(哈希表1.取指定键值("key1"))
调试输出("key1 的值:" + 键值)
' 获取按钮对象
变量 btn1 = (按钮)哈希表1.取指定键值("按钮1")
4.删除键值
哈希表1.删除项目("key1")
5.检查表中键或值是否存在
变量 包含指定键 为 逻辑型 = 哈希表1.取包含键("key1")
调试输出("包含 key1:" + 包含指定键)
变量 包含指定值 为 逻辑型 = 哈希表1.取包含值("苹果")
调试输出("包含 苹果:" + 包含指定值)
6.遍历哈希表
哈希表1.创建遍历()
判断循环(哈希表1.取下一个())
变量 项目键 为 对象 = 哈希表1.取项目键()
变量 项目值 为 对象 = 哈希表1.取项目值()
调试输出("项目键:" + 项目键 + ",项目值:" + 项目值)
结束循环
上方代码运行后输出:
项目键:key1,项目值:苹果
项目键:key2,项目值:香蕉
项目键:key3,项目值:梨子
7.清空哈希表
哈希表1.清空()
注意事项
一个哈希表中不能包含两个相同的键名。