2011-11-14 78 views

回答

26

NSDictionary是一類集羣(請參見「類簇」部分The Cocoa Fundamentals Guide),這意味着實際的實現是不可見的,API的用戶。實際上,Foundation框架會根據數據量等選擇合適的運行時間實現。另外,NSDictionary可以把任何id作爲關鍵字,而不僅僅是NSString(當然,關鍵對象的-hash必須是常量) 。

因此,最接近的模擬可能是Map<Object,Object>

+0

由於Foundation是opensource,因此您也可以在Apple網站上查看實施細節。請在CFDictionary.c下查看,但CFDictionary.h也有一些有趣的文檔:http://www.opensource.apple.com/source/CF/CF-1153.18/ – rwyland

13

實際應用: HashMap<String, Object>將成爲一個簡單的,非平行字典的方式。但是,如果您需要線程安全(原子)的東西,則必須使用線程安全的 HashTable<String, Object> ,但 - 特別是 - 不接受null作爲有效值或密鑰。

+0

是不是Hashtable過時了? – styler1972

+0

NSDictionary不保證線程安全。 –

+2

那麼,從接受的答案中映射<對象,對象>有什麼區別 – Jonny

1

我承認是Android新手,但對我來說ContentValues似乎是最接近NSDictionary

+0

它非常接近,但不能將任何對象存儲爲值(基本上,您只能存儲數字或字符串,而不能存儲複雜的對象) – Sylverb

相關問題