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