浅析NSSet与NSArray之间的区别

来源:互联网 发布:python的语法结构 编辑:程序博客网 时间:2024/06/16 03:49

相信我们大多数人都是会在项目中用到NSArray,但是用到NSSet的应该是很少的,而NSArray和NSSet都作为一个集合,为什么我们在iOS的项目中很少用NSSet呢?

今天我查了一些资料,看了看NSArray和NSSet之间的区别:

    首先,NSArray存的数据是有序排列的,并且数组中的元素可以一样,而NSSet存的数据是无序的,而且元素是不能一样的,也就是在NSSet中的元素是唯一的。

    第二,NSSet还是有它自己的优势的,NSSet的底层是用hash思想来实现的,所有就保证了存储对象的唯一性(上边提到过),这样做的话也造就了它的查询速度快,但是不能把某某对象存在第几个元素后面之类的有关脚标的操作,至于为什么查询速度快,我们可以这么想,NSSet是通过hash值来找到某一元素的存储位置,速度当然快,而NSArray呢?它是通过遍历数组中的所有元素来找到对应的值的,效率肯定会大大降低了。

0 0