Objective-C的NSDictionary
在Java中最接近的實現是什麼?對我來說,它看起來像HashMap<String, Object>
,但我對Objective-C非常陌生。什麼是Objective-C的NSDictionary的Java等價物?
感謝
Objective-C的NSDictionary
在Java中最接近的實現是什麼?對我來說,它看起來像HashMap<String, Object>
,但我對Objective-C非常陌生。什麼是Objective-C的NSDictionary的Java等價物?
感謝
NSDictionary
是一類集羣(請參見「類簇」部分The Cocoa Fundamentals Guide),這意味着實際的實現是不可見的,API的用戶。實際上,Foundation框架會根據數據量等選擇合適的運行時間實現。另外,NSDictionary
可以把任何id
作爲關鍵字,而不僅僅是NSString
(當然,關鍵對象的-hash
必須是常量) 。
因此,最接近的模擬可能是Map<Object,Object>
。
實際應用: HashMap<String, Object>
將成爲一個簡單的,非平行字典的方式。但是,如果您需要線程安全(原子)的東西,則必須使用線程安全的 HashTable<String, Object>
,但 - 特別是 - 不接受null作爲有效值或密鑰。
我承認是Android新手,但對我來說ContentValues似乎是最接近NSDictionary
。
它非常接近,但不能將任何對象存儲爲值(基本上,您只能存儲數字或字符串,而不能存儲複雜的對象) – Sylverb
由於Foundation是opensource,因此您也可以在Apple網站上查看實施細節。請在CFDictionary.c下查看,但CFDictionary.h也有一些有趣的文檔:http://www.opensource.apple.com/source/CF/CF-1153.18/ – rwyland