只是一个思考问题(甚至不是什么大问题,但引起了我的好奇心)。
假设我有NSDictionary
,其中包含2个键值对。
NSNumber
个对象,但让它NSString
保持在JSON
}精神)。所以,比如:
{
"keyValues": [
{
"key_1": "value_1"
},
{
"key_2": "value_2"
},
...
...
{
"key_N": "value_N"
}
],
"keyCount": "N" //where 'N' 100 or 1000 (basically the count of the array)
}
现在,我的问题是,哪个更有效率(即使是非常小的差距)
int count = [[myDictionary valueForKey:@"keyCount"] intValue];
int count = [[myDictionary valueForKey:@"keyValues"] count];
注意:这只是一个基本的例子,所以请耐心等待。
答案 0 :(得分:3)
假设您已经解析了JSON:根据this question的答案,count
的{{1}}是常量,因此NSMutableArray
在处理方面应该至少同样有效时间。它在内存方面肯定更有效,更重要的是,使用count并不是多余的,也更容易维护。
如果您不想解析整个JSON,那么事情看起来就不同了。要仅获取对象的数量,您不需要创建数组。将计数分开存储会使计数具有count
复杂度,解析数组为O(1)
。对于大型阵列,这可能会产生明显的差异。