vbs实现ArrayList的数据结构

本文详细介绍了ArrayList类的实现,包括动态数组的使用、自动扩容机制、添加、删除、获取和设置元素的方法,以及判断元素是否存在和清空列表的功能。通过示例展示了如何创建、填充和操作ArrayList实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Set myList = new ArrayList
Dim e : e = Array(1,2,3,4)
myList.addAll e
call myList.setValue(0, 5)
MsgBox myList.getValue(0)

Class ArrayList
	'实际用动态数组存储
	Private elementsData()
	
	'当前列表元素个数
	Public count
	
	'当前列表最大容量
	Public maxSize
	
	Dim i
		
	'添加一个元素
	Public Sub add(item)
		'自动扩容
		if count + 1 > maxSize then
			maxSize = (maxSize + 1) * 1.5
			Redim Preserve elementsData(maxSize)
		end if
		elementsData(count) = item
		count = count + 1		
	End Sub
	
	Public Sub addAll(items)
		'调用单个添加的方法
		Dim itemIndex : itemIndex = 0
		for i = 0 to UBound(items)
			Me.add(items(i))
		next
		
	End Sub
	
	'按照下标删除某个元素
	Public Sub remove(index)
		for i = index to count - 1
			elementsData(i) = elementsData(i + 1)
		next
	End Sub
	
	'按照下标获取某个元素
	Public Property get getValue(index)
		getValue = elementsData(index)
	End Property
	
	'按下标设置元素
	Public Sub setValue(index, elementValue)
		elementsData(index) = elementValue
	End Sub
	
	'判断是否包含某个元素
	Public Property get contains(item)
		for i = 0 to count - 1
			if elementsData(i) = item then
				contains = True
				exit Property
			end if			
		next
		contains = False
	End Property
	
	'判断是否包含某个元素
	Public Sub clear()
		for i = 0 to count - 1
			elementsData(i) = Empty			
		next
		count = 0
		maxSize = 0
		Redim Preserve elementsData(maxSize)
	End Sub
	
	'获取数组实际内容
	Public Property get toArray()
		toArray = elementsData
	End Property
End Class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值