如果我们要遍历一个数组, 上过编程课程的童鞋都会想到For语句去循环.
Objective C 提供一个Block的遍历方法, 那么用它还是用For好呢?
下面我们去实践一下:
遍历一个数组看谁快
参赛选手 ForLoop, For - in, enumerateObjectsUsingBlock这个三个方法:


- For-in方法最快速
结论:
当只是遍历一个数组的时候使用For-in会比较快速, 推荐使用For-in遍历数组.
通过Value查找Index看谁快
假如现在我们要查找一个Value, 这个Value 值是100001, 找出它的index (数组的序列号).
那么现在我们来比较一下
参赛选手 For - in, enumerateObjectsUsingBlock, enumerateObjectsWithOptions 这个三个方法: (ForLoop已经不再继续讨论了)


- enumerateObjectsWithOptions方法最快速
结论:
通过Value查询index的时候, 面对大量的数组推荐使用 enumerateObjectsWithOptions的并行方法. - For-in和enumerateObjectsWithOptions方法这里我比较喜欢第二种写法简洁直观.
现在咱们要遍历字典
这里我们比较一下使用 For-in 和 enumerateKeysAndObjectsUsingBlock 这个两个方法:


enumerateKeysAndObjectsUsingBlock胜出
结论:
当我们想遍历字典类型的时候, 推荐使用enumerateKeysAndObjectsUsingBlock
不仅仅是因为速度快, 更是因为代码更优雅和直观.
本文对比了不同遍历方法在数组和字典上的效率,发现For-in方法最适合遍历数组,而enumerateKeysAndObjectsUsingBlock在遍历字典时表现最佳。同时,对于大量数据的Value查询,enumerateObjectsWithOptions提供了最快的速度。
813

被折叠的 条评论
为什么被折叠?



