我有大量的对象。每个对象都有一个唯一的 GUID。我需要这个 GUID 的地图对象。我现在使用 System.Collections.Hashtable。问题是添加对象 hashset 会改变其大小并导致大对象堆的碎片。它也需要两倍于我拥有的对象的内存。我需要减少内存使用量。
我需要的数据结构的特点:
- 添加对象
- 按 ID 移除对象
- 按 ID 查找对象
- 运行数据结构中的所有对象(foreach)
为此目的最好的数据结构是什么?我知道有红黑树和 AVL 树,但我不知道哪种树更好用。也许还有另一种适合通过唯一标识符或字符串映射的树数据结构?哪种数据结构工作得更快?