1. 程式人生 > >字典大致實現原理

字典大致實現原理

一、NSDictionary使用原理

1.NSDictionary(字典)是使用 hash表來實現keyvalue之間的對映和儲存的,hash函式設計的好壞影響著資料的查詢訪問效率。

    - (void)setObject:(id)anObject forKey:(id <NSCopying>)aKey;

2.Objective-C 中的字典 NSDictionary 底層其實是一個雜湊表,實際上絕大多數語言中字典都通過雜湊表實現,

二、雜湊的原理

雜湊概念:雜湊表的本質是一個數組,陣列中每一個元素稱為一個箱子(bin),箱子中存放的是鍵值對。

三、雜湊表的儲存過程


1.根據 key 計算出它的雜湊值 h

2.假設箱子的個數為 n,那麼這個鍵值對應該放在第 (h % n) 個箱子中。

3.如果該箱子中已經有了鍵值對,就使用開放定址法或者拉鍊法解決衝突。

在使用拉鍊法解決雜湊衝突時,每個箱子其實是一個連結串列,屬於同一個箱子的所有鍵值對都會排列在連結串列中。