指針動態數組,適合存儲對象引用。核心屬性/方法:Count、Items[Index]、Add/Delete/Insert/Remove/IndexOf/Sort。基於數組,隨機訪問 O(1),插入刪除 O(n)。
TList,強類型 (TObject)。OwnsObjects (默認 True) 控制刪除/清理時是否自動 Free 對象。FindInstanceOf 查找特定類實例。TObjectList,類型縮窄為 TComponent。FreeNotification 自動移除已釋放的組件引用。存儲 TClass 元類,適用於工廠模式、插件註冊。
TOrderedList (內部用 TList)。TStack:後進先出 (LIFO),Push/Pop/Peek。TQueue:先進先出 (FIFO),Push/Pop/Peek。強類型 TObject 版本,用法同非對象版。
利用指針與整數同佔 4 字節,將 Integer 強轉 Pointer 存入 TList,提供類型安全封裝。
TStrings 為抽象基類,TStringList 為默認實現。Add/Insert/Delete/IndexOf、鍵值對 (Name=Value)、關聯對象 (AddObject)。TListBox.Items 實為 TListBoxStrings,內部發送 LB_ADDSTRING 消息直接操作窗口控件。THashedStringList:哈希索引優化 IndexOf/IndexOfName,查找快 100 倍,但頻繁增刪需重建哈希。鍵值對 (Pointer→Pointer / Object→Object),基於哈希表,不支持下標訪問,用 ForEach 遍歷。
內部 TCriticalSection 保護所有操作,Duplicates 控制是否允許重複項。
存儲介面引用,內部用 TThreadList 實現線程安全。
位級存儲 Boolean,Bits[Index] 讀寫,OpenBit 尋找首個 False。汇編優化,極快,但功能受限。
TCollection 管理 TCollectionItem 子對象,支持 DFM 存儲 (WriteCollection/ReadCollection)。TCarriageItem),屬性可在 Object Inspector 編輯。TOwnedCollection 自動處理 GetOwner,簡化代碼。| 場景 | 推薦容器 |
|---|---|
| 任意對象列表,需自動釋放 | TObjectList |
| 組件列表,自動同步銷毀 | TComponentList |
| 字符串列表,UI 綁定 | TStringList / 自定義 TStrings |
| 鍵值查找,高性能 | THashedStringList / TBucketList |
| 棧/隊列 | TStack / TQueue |
| 整數/布爾緊湊存儲 | TIntList / TBits |
| 設計時可編輯集合 | TCollection |
| 多線程共享列表 | TThreadList / TInterfaceList |