首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 2009 容器類全解析:TList/TObjectList/TStringList/THashedStringList 等

     編輯:Delphi

Delphi 2009 容器類體系完整指南:從基礎列表到哈希字符串表

系統梳理 Delphi 2009 主要容器類:TList、TObjectList、TComponentList、TClassList、TOrderedList/TStack/TQueue、TObjectStack/TObjectQueue、TIntList、TStrings/TStringList、THashedStringList,涵蓋指針、對象、組件、類、整數、字符串等數據類型。

1. TList:指針動態數組

  • 基於數組,下標訪問 O(1),插入刪除 O(n)
  • 屬性:Count、Items[Index]、Capacity
  • 方法:Add/Insert/Delete/Remove/IndexOf/Exchange/Move/Pack/Sort
  • 適用:對象列表、頻繁隨機訪問、較少插刪

2. TObjectList:對象擁有權管理

  • 繼承 TList,強類型參數 TObject
  • OwnsObjects (默認 True):自動釋放移除的對象,防內存洩漏
  • Extract 僅移除引用不釋放對象
  • FindInstanceOf 查找特定類型實例

3. TComponentList:組件自動移除

  • 繼承 TObjectList,參數類型 TComponent
  • 組件被釋放時自動從列表移除(利用 FreeNotification)

4. TClassList:類引用列表

  • 繼承 TList,參數類型 TClass (元類)

5. TStack/TQueue:棧與隊列

  • 繼承 TOrderedList (抽象類),實現 PushItem
  • TStack:LIFO,Push 壓棧,Pop 出棧,Peek 窺視
  • TQueue:FIFO,Push 入隊(頭部),Pop 出隊(尾部)
  • 通用方法:Count、AtLeast

6. TObjectStack/TObjectQueue:對象版棧隊

  • 存儲 TObject 而非指針,類型安全

7. TIntList:整數列表技巧

  • 利用指針與整數同為 4 字節,直接映射存儲 Integer

8. TStrings/TStringList:字符串列表基類與實現

  • TStrings 抽象基類,提供豐富算法:排序、鍵值對、流存取、對象關聯
  • TStringList 具體實現,常用屬性 Strings[Index]、Count、CommaText、DelimitedText
  • 常用方法:Add/Insert/Delete/IndexOf/AddStrings/Assign

9. THashedStringList:哈希加速鍵值查找

  • 繼承 TStringList,內部維護哈希表
  • 大量鍵值對時 Values[Name] 查找 O(1) 級,遠快於線性掃描
  • 適用:配置文件、屬性包、大量名值對場景

測試代碼片段: 文中包含 TList 存儲記錄指針、TStringList 基礎操作等完整示例。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved