NSArray 和NSDictionary都是oc中的集合类,什么叫做集合,就是装对象的对象
NSArray篇
NSArray是有序的
1.创建方式 a.[[NSArray alloc] initWithArray:arr1];(用本身创建)
b.NSArray*array = @[对象1,对象2,。。。。];
2.常用的属性
a.count 获取个数
b.array[0] 获取第0个元素
c.contains 是否包含 ,返回BOOL 类型
d.subarrayWithRange 提取元素
3.遍历 1.for(,,)2.enum ([enum1 nextObject]为nil 的时候停止)3.for in(***)
4.排序方法
1.sortedArrayUsingFunction{传入返回类型为NSInteger的函数名,并实现这个函数,较麻烦}
2.sortedArrayWithOptions:<#(NSSortOptions)#> usingComparator:<#^NSComparisonResult(id obj1, id obj2)cmptr#>系统封装好的一个方法,差不多就是sortedArrayUsingFunction的函数方法写在Block内
3.NSSortDescriptor(***)
NSSortDescriptor *des1 = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];//根据name排列
NSSortDescriptor *des2 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];//根据age排列
NSArray *desArr = @[des1,des2];//当des1相同时 再比较des2
NSArray *newArray = [array sortedArrayUsingDescriptors:desArr];
子类:NSMutableArray用的比较多
增: add(在后面添加新元素), insert(讲新元素插入指定下标)
删: remove*****
改: replace****, exchange**** , set***** (全部改为....)
查:即上面写的遍历方法
======================================
NSDictionary
NSDictionary是无序的集合(NSArray是有序的)
key->value键值对,也就是说字典是通过key来找值的( NSArray是通过下标找值的)
1.创建方式
a.initWithDictionary
b.[NSDictionary dictionaryWithObjects:<#(NSArray *)#> forKeys:<#(NSArray *)#>
c.NSDictionary* dictionary = @{key1 : value1 , key2 : value2 , key3 : value3 ……}<<NSArray为[]<-中括号>>
2.常用的属性
a.count
b.id obj = dictionary[key]
c.allValues, allKeysForObject
3.遍历 直接推荐forin方式
子类NSMutableDictionary
增: set***** 对键值对(一般就这个了); add***** 增加一个字典内容;
删: remove*******
改: set******(和增加是同一个方法,有的时候就修改value 没有的话就会添加一对键值对)
=========================================
比较
1.字典相对与数组的优点 (查询)
字典获取元素速度比数组快
2.获取元素的方式
数组通过下标获取指定元素的内容
字典通过key来获取指定元素的内容