【发布时间】:2011-12-18 20:22:43
【问题描述】:
我需要一个 delphi 键/值集合,它允许我以插入/添加键/值对的相同顺序迭代集合。
TList<T> 保证订单,但 TDictionary<T1, T2> 不保证。
我想我总是可以定义一个TList<TPair<Key, Value>>,但使用起来会更麻烦。
是否有可以满足我的要求的内置集合类型,或者包装 TList<TPair<Key, Value>> 是我的最佳选择?或者最好有一个TList<Key> 和一个TDictionary<Key, Value> 并遍历列表。
【问题讨论】:
-
在 Key 上排序的
TList<TPair<Key,Value>>还不错,因为 Key 查找操作可以使用二分查找,但您可能需要基于tree的数据结构。请注意,TList<TPair<x,y>>不会强制执行唯一性,如果您想强制执行唯一键,您可能还希望实现这一点。 -
@WarrenP 如果不按顺序保存键,您将如何执行二进制搜索?
标签: delphi generics collections