- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
检查一个对象是否已经存在于列表中,哪个更快更便宜。通过使用 NSArray 包含对象或通过检查 NSDictionary 的键是否已经存在?
NSArray containObject 选择器是否也遍历整个数组元素?另外检查字典中是否已经存在一个键呢?这是否需要遍历所有键。
最后,检查对象是否已存在于(同一类的)大型对象列表中的最佳和最快方法是什么。
提前致谢
最佳答案
根据集合类的文档,NSDictionary 是基于哈希表的。这意味着如果您在字典中搜索键,所需时间比遍历数组少得多。
所以,搜索一个键应该是o(1+numberofcollisions)。遍历数组的时间复杂度为 o(n)。您可以快速排序数组然后对其进行二进制搜索,这将使成本大大降低。然而,为了您的利益,NSDictionary(哈希表)的搜索成本非常低。
来自苹果 docs
Internally, a dictionary uses a hash table to organize its storage and to provide rapid access to a value given the corresponding key. However, the methods defined for dictionaries insulate you from the complexities of working with hash tables, hashing functions, or the hashed value of keys. The methods take keys directly, not in their hashed form.
关于iphone - NSArray 与 NSDictionary 查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10998535/
我在使用以下代码来创建NSDictionaries的NSDictionary时遇到麻烦。没有编译错误,但是在运行时,此代码失败。 NSDictionary *section0 = [NSDiction
我得到了 '[NSDictionary]!? is not convertible to [NSDictionary]?' error on following code. var jsonRes
我有以下代码: NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSMutableDictionary *g
目前我有以下代码可以从 xml 文件中获取数据。这到目前为止有效 - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)el
在 Objective C 中,我们将字典值的 NSArray 分配给 NSDictionary 变量并获取键的值,如下所示,NSDictionary *dictValue = [array obje
将对象从一个 NSDictionary 复制到另一个 NSDictionary 的最简洁方法是什么?我必须从字典中提取特定值并将它们存储在新字典中。目前我有一些简单的代码,像这样...... NSSt
希望有人能帮助我: 我正在使用 NSDictionary 来填充 UITableView。它的模型类似于 [key:userID => value:userName]。tableView 只填充了 u
我有一本字典,其中包含从解析 JSON 中提取的其他字典中的子项。结构如下所示: { children = (
我需要检查 nsdictionary 中的元素是否不等于 normal,然后将该元素复制到一个数组中作为我的 UITable 的数据源。 这是一个条目的例子: Trailer = {
我正在尝试将数据添加到嵌套在其他词典中的 NSMutableDictionary。 在添加数据的代码运行之前开始输出 DayData Dictionary { //DayData
我的应用程序有一个 NSDictionary,其中包含许多其他 NSDictionary。如果我打印出这本词典,它的内容如下: oxip = { created = "2014-02-
我有一个 NSDictionary 记录这个: address = "30 East 23rd Street"; address1 = "30 East 23rd Street";
好的,我有一个 .plist 文件, 其中我有一个 NSDictionary *StoredAddresses, 在 StoredAddresses 中,是另一把 NSDictionary 我知道我可
您好,我在将数据从一个 NSDictionary 复制到另一个我使用的 NSDictionary 时遇到问题 [dicForFoodproduct_fromWeb initWithDictionary
我有一个包含四个对象的NSDictionary。每个对象都是一个包含数千个对象的 NSDictionary。我已经通过记录顶级字典的描述来验证它包含它应该包含的内容。但是,当我运行下面的代码以枚举该顶
给定的图像具有数据结构 我能够从 FirstText 和 LastText 获取数据,NSPredicate 是 subData.FirstText contains[cd] %@ OR subDat
我有一些装满书籍的 [NSDictionary],我正在检查这些书籍的值以便更好地在 UICollectionView 中显示内容。我正在检查一个 key 是否包含多个 ISBN 编号。如果是这样,我
我有一个很大的 NSDictionary,里面有一个较小的 NSDictionary。我想自动释放较大的一个,并保留第二个。我的初始化方法中有这段代码: // Autoreleased stage d
我对 Objective C 比较陌生。我有一个包含 NSDictionary 对象的 NSArray。我正在调用网络服务来获取数据。我有一个 PickerView,这是它的数据源(我实现了 numb
我想添加一个不同的字典作为另一个键字典的值,但在我的循环中,我发现相同的值添加到我所有的字典键。这是我的代码: for (MyObject *message in messages) {
我是一名优秀的程序员,十分优秀!