*NSSet:
1>无序的、不重复的。存放到NSSet中的内容并不会排序与添加顺序也没有关系
2>通过anyObject来访问单个元素
3>遍历NSSet中的每个元素。通过forin循环来遍历
4>好处:效率高。
5>应用场景:
比如重用Cell的时候,从缓存池中随便获取一个就可以了,无需按照指定顺序来获取
当需要把数据存放到一个集合中,然后判断集合中是否有某个对象的时候
6>由于在底层使用hash的思想实现的,所以他就保证了里面存储的对象必须是唯一的
7>由于NSSet是用hash实现的所以就造就了它查询速度比较快,但是我们不能把某某对象存在第几个元素后面之类的有关下标的操作
*NSArray
1>有序的、可以有重复对象。对象的顺序是按照添加的顺序来保存的
2>好处:有序访问
3>应用场景:在绝大多数需要依赖顺序的情况下(比如tableView的数据源集合,在实际操作中要根据下标来获取对象)
4>通过下标来访问
5>可以存储相同的几个对象
相同点:
1>NSSet,NSArray都是类,只能添加对象,如果需要加入基本数据类型(int,float,BOOL,double等),需要将数据封装成NSNumber类型
补充点:
hash:散列,也可直译为“哈希”
无序集合:集合里的元素只能遍历
有序集合:集合里的元素可以根据key或index访问