Dictionary 描述
字典 Dictionary 通過 Hash 桶演算法進行O(1)查找資料,在 Hash 碰撞達到一定次數后會自動進行 Resize,也會在陣列大小不足的時候會自動進行Resize,
如果自定義 Key 沒有重寫 GetHashCode 和 Equal 方法,則會呼叫基類 Object 的方法,
-
如果自定義 Key 是 Struct 的話,則會出現裝箱操作導致 GC Alloc,(舊版本的 Unity 支持 C# 不高,因此默認 Comparer 沒有對 Enum 進行處理,導致 Enum 作為 Key 也會造成 GC)
-
導致相同資料的兩個物件判定不相等,
Comparer 構建
-
在初始化 Dictionary 的時候需要構造對應的 Comparer,

-
如果沒有傳入 Comparer 的時候,會根據 Key 的型別自動創建 Comparer,

-
其中進行插入,查找等操作時候,通過呼叫 Comparer 的 GetHashCode 和 Equal 方法來檢查對應桶是否存在對應Key,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14604.html
標籤:其他
下一篇:Entitas--ECS框架插件
