Delphi中的容器类_陈省.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Delphi中的容器类作者陈省

从Delphi5开始VCL中增加了一个新的Contnrs单元,单元中定义了8个新的类,全部都是基于标准的TList

类。

TList类

TList类实际上就是一个可以存储指针的容器类,提供了一系列的方法和属性来添加,删除,重排,定位,存取和排序容器中的类,它是基于数组的机制来实现的容器,比较类似于 C++中的Vector和Java中的ArrayList,TList经常用来保存一组对象列表,基于数组实现的机制使得用下标存取容器中的对象非常快,但是随着容器中的对象的增多,插入和删除对象速度会直线下降,因此不适合频繁添加和删除对象的应用场景。下面是TList类的属性和方法说明:

属性描述

Count:Integer;

返回列表中的项目数

Items[Index:Integer]:Pointer;default

通过以0为底的索引下标直接存取列表中的项目方法

类型描述

Add(Item:Pointer):Integer;

函数

用来向列表中添加指针

Clear;

过程

清空列表中的项目Delete(Index:Integer);过程

删除列表中对应索引的项目

IndexOf(Item:Pointer):Integer;

函数

返回指针在列表中的索引Insert(Index:Integer;Item:Pointer);过程

将一个项目插入到列表中的指定位置

Remove(Item:Pointer):Integer;

函数

从列表中删除指针名称

类型描述

Capacity:Integer;property

可以用来获取或设定列表可以容纳的指针数目

Extract(Item:Pointer):Pointer;function

Extract类似于Remove可以将指针从列表中删除,不同的是返回被删除的指针。

Exchange(Index1,Index2:Integer);procedure

交换列表中两个指针

First:Pointer;function

返回链表中的第一个指针

Last:Pointer;function

返回链表中最后一个指针

Move(CurIndexNewIndex:Integer);procedure

将指针从当前位置移动到新的位置

Pack;procedure

从列表中删除所有nil指针

Sort(Compare:TListSortCompare);procedure

用来对链表中的项目进行排序,可以设定Compare参数为用户定制的排序函数TObjectList类

TObjectList类直接从TList类继承,可以作为对象的容器。TObjectList类定义如下:

TObjectList=class(TList)

...

public

constructorCreate;overload;

constructorCreate(AOwnsObjects:Boolean);overload;functionAdd(AObject:TObject):Integer;

functionRemove(AObject:TObject):Integer;functionIndexOf(AObject:TObject):Integer;functionFindInstanceOf(AClass:TClass;AExact:Boolean=True;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对象有OwnsObjects属性。当设定为True(默认值),同TList类不同,TObjectList对象将销毁任何从列表中删除的对象。无论是调用Delete,Remove,Clear方法,还是释放TObjectList对象,都将销毁列表中的对象。有了TObjectList类,我们就再也不用使用循环来释放了对象。这就避免了释

文档评论(0)

dqy118 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体上海海滋实业有限公司
IP属地上海
统一社会信用代码/组织机构代码
91310115MA7DL1JF2N

1亿VIP精品文档

相关文档