尽管我查阅了以下NSSet,NSMutableArray,NSFastEnumeration文档,但我无法找到满足以下场景的令人满意的来源:
在这里,
输出结果如下:
为什么
请详尽回答。
编辑: 我已经找到了上述迭代时间背后的真正原因,那是由于数组和集合中元素数量不相等。我在这里发布了实际问题。同时,我也可以在这里发布相同的问题,但似乎对于这个页面来说太过不规范,而且造成这种情况的原因也有所偏离。再次感谢所有人的回应。
在这里,
NSMutableArray
,NSArray
和NSSet
包含相等的10000000个对象。for (NSString *strIn in MutableArray) //NSMutableArray
{
// same Implementation
}
NSLog(@"Time for Mutable Array %d Iteration : %f",ObjectCount,[[NSDate date]timeIntervalSinceDate:startDate]);
startDate = [NSDate date];
for (NSString *strIn in array) //NSArray
{
// same Implementation
}
NSLog(@"Time for NSArray %d Iteration : %f",ObjectCount,[[NSDate date]timeIntervalSinceDate:startDate]);
startDate = [NSDate date];
for (NSString *strIn in Set) //NSSet
{
// same Implementation
}
NSLog(@"Time for Set %d Iteration : %f",ObjectCount,[[NSDate date]timeIntervalSinceDate:startDate]);
输出结果如下:
NSMutableArray
10000000次迭代所需时间:0.048785秒
NSArray
10000000次迭代所需时间:0.390537秒
NSSet
10000000次迭代所需时间:4.684203秒为什么
NSSet
和NSArray
的迭代时间差别如此之大。请详尽回答。
编辑: 我已经找到了上述迭代时间背后的真正原因,那是由于数组和集合中元素数量不相等。我在这里发布了实际问题。同时,我也可以在这里发布相同的问题,但似乎对于这个页面来说太过不规范,而且造成这种情况的原因也有所偏离。再次感谢所有人的回应。