objective-C学习笔记(八) 集合类型 Collection Types

OBJC的集合类型:

1.数组 Array

2.Set

3.键值对 Dictionary

数组:OC中的数组被定义为class,引用类型。索引从0开始,访问越界会抛出运行时异常。

NSArray的元素必须是对象,即NSObject的子类。

     值类型必须用NSNumber封装为对象类型后,才能放入数组中。

     C语言结构类型的话,用NSValue封装为对象类型后,才能放入数组中。

     数组元素可以是不同对象类型,可能会有类型不安全。

 NSArray具有常量性:长度和元素指针都不能更改,但指针指向的对象内部可以更改。 

 NSMutableArray是可变数组,和可变字符串一样,手动分配空间capacity的时候,要预估好空间,不然超出的话要花很大的内存代价。

数组遍历:

 最快——FastEnumeration 快速枚举 优化了索引检查和动态消息调用

 较慢:NSEnumerator 迭代器遍历  和传统for循环

数组查找:

 indexOfObject 查找是否存在"值相等"的对象(需要重写isEqual改为比较值相等

  indexOfObjectIdenticalTo 查找是否存在“指针相等”的对象

数组排序:

  不改变原数组(常量性)

 集合、键值对也和数组差不多。元素都是对象,也不可变,也有对应的可变类。 

posted @ 2016-03-25 19:44  dom075  阅读(122)  评论(0编辑  收藏  举报