《delphi中的容器类》word版

《delphi中的容器类》word版

ID:30364597

大小:107.30 KB

页数:36页

时间:2018-12-29

《delphi中的容器类》word版_第1页
《delphi中的容器类》word版_第2页
《delphi中的容器类》word版_第3页
《delphi中的容器类》word版_第4页
《delphi中的容器类》word版_第5页
资源描述:

《《delphi中的容器类》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、Delphi中的容器类作者:泡面@幸福发表于2010-07-1317:32原文链接阅读:1评论:0Delphi中的容器类作者陈省从Delphi5开始VCL中增加了一个新的Contnrs单元,单元中定义了8个新的类,全部都是基于标准的TList类。TList类TList类实际上就是一个可以存储指针的容器类,提供了一系列的方法和属性来添加,删除,重排,定位,存取和排序容器中的类,它是基于数组的机制来实现的容器,比较类似于C++中的Vector和Java中的ArrayList,TList经常用来保存一组对象列表,基于数组实现的机制使得用下标存取容器中的对象非常快,

2、但是随着容器中的对象的增多,插入和删除对象速度会直线下降,因此不适合频繁添加和删除对象的应用场景。下面是TList类的属性和方法说明:属性描述Count:Integer;返回列表中的项目数Items[Index:Integer]:Pointer;default通过以0为底的索引下标直接存取列表中的项目方法类型描述Add(Item:Pointer):Integer;函数用来向列表中添加指针Clear;过程清空列表中的项目Delete(Index:Integer);过程删除列表中对应索引的项目IndexOf(Item:Pointer):Integer;函数返回指

3、针在列表中的索引Insert(Index:Integer;Item:Pointer);过程将一个项目插入到列表中的指定位置Remove(Item:Pointer):Integer;函数从列表中删除指针名称类型描述Capacity:Integer;property可以用来获取或设定列表可以容纳的指针数目Extract(Item:Pointer):Pointer;functionExtract类似于Remove可以将指针从列表中删除,不同的是返回被删除的指针。Exchange(Index1,Index2:Integer);procedure交换列表中两个指针Fi

4、rst:Pointer;function返回链表中的第一个指针Last:Pointer;function返回链表中最后一个指针Move(CurIndexNewIndex:Integer);procedure将指针从当前位置移动到新的位置Pack;procedure从列表中删除所有nil指针Sort(Compare:TListSortCompare);procedure用来对链表中的项目进行排序,可以设定Compare参数为用户定制的排序函数TObjectList类TObjectList类直接从TList类继承,可以作为对象的容器。TObjectList类定义

5、如下:TObjectList=class(TList).publicconstructorCreate;overload;constructorCreate(AOwnsObjects:Boolean);overload;functionAdd(AObject:TObject):Integer;functionRemove(AObject:TObject):Integer;functionIndexOf(AObject:TObject):Integer;functionFindInstanceOf(AClass:TClass;AExact:Boolean=Tr

6、ue;AStartAt:Integer=0):Integer;procedureInsert(Index:Integer;AObject:TObject);propertyOwnsObjects:Boolean;propertyItems[Index:Integer]:TObject;default;end;不同于TList类,TObjectList类的Add,Remove,IndexOf,Insert等方法都需要传递TObject对象作为参数,由于有了编译期的强类型检查,使得TObjectList比TList更适合保存对象。此外TObjectList对象有

7、OwnsObjects属性。当设定为True(默认值),同TList类不同,TObjectList对象将销毁任何从列表中删除的对象。无论是调用Delete,Remove,Clear方法,还是释放TObjectList对象,都将销毁列表中的对象。有了TObjectList类,我们就再也不用使用循环来释放了对象。这就避免了释放链表对象时,由于忘记释放链表中的对象而导致的内存泄漏。另外要注意的是OwnsObjects属性不会影响到Extract方法,TObjectList的Extract方法行为类似于TList,只是从列表中移除对象引用,而不会销毁对象。TObje

8、ctList对象还提供了一个FindInstance

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。