iOS 工作之余小总结(四)--(2)可变与不可变数组

来源:互联网 发布:软件编写入门 编辑:程序博客网 时间:2024/06/05 14:09

继续上一篇,这篇总结可变与不可变数组。
1.不可变数组NSArray
不可变数组和不可变字符串一样,创建的对象都放在代码区。继续上代码:

//1.创建
NSArray *fyArray = [NSArray array];
NSArray *fyArray1 = [NSArray arrayWithObject:@”one”]; //初始化一个数组
NSArray *fyArray2 = [NSArray arrayWithObjects:@”one”,@”two”,@”three”, nil];
NSArray *fyArray3 = [NSArray arrayWithArray:fyArray1];
NSArray *fyArray4 = @[@”one”,@”two”,@”three”];

//2.求长度
[fyArray4 count];

//3.根据下标求元素值
[fyArray4 objectAtIndex:1];

//4.根据元素值求下标
[fyArray4 indexOfObject:@”one”];

//5.遍历
NSMutableString *fyStr = [[NSMutableString alloc] init];
for (NSString *fyStr1 in fyArray4)
{
//TODO
}

//6.是否包含某个元素
[fyArray4 containsObject:@”two”];

//7.数组副本元素的深拷贝 当自定义类的对象为数组元素的时候,如果想拷贝元素的时候 要用copyItems 返回YES是深拷贝
NSArray *fyDeeplyArray = [[NSArray alloc] initWithArray:fyArray4 copyItems:YES];
注:如果返回值为NO,则为引用拷贝,即改变拷贝的对象值,原数组中的值也会被改变。

2.可变数组NSMutableArray
可变数组和可变字符串是一样的,对象开辟的空间都在堆区。
//1.创建
NSMutableArray *fyArray = [NSMutableArray array];
NSMutableArray *fyArray1 = [NSMutableArray arrayWithCapacity:100];//预估值
NSMutableArray *fyArray2 = [NSMutableArray arrayWithObject:@”one”];
NSMutableArray *fyArray3 = [NSMutableArray arrayWithObjects:@”one”,@”two”,@”three”,nil];
NSMutableArray *fyArray4 = [NSMutableArray arrayWithArray:fyArray3];

//2.添加
[fyArray4 addObject:@”five”]; // 追加对象
[fyArray4 insertObject:@”six” atIndex:1]; //向指定的位置追加指定的对象

//3.删除
[fyArray4 removeObject:@”six”];
[fyArray4 removeAllObjects];//删除数组中所有的元素

//4.替换
[fyArray4 replaceObjectAtIndex:1 withObject:@”seven”]; //替换单个的
NSArray *fyArray5 = @[@”one”,@”two”,@”three”];
[fyArray4 replaceObjectsInRange:NSMakeRange(1, 1) withObjectsFromArray:fyArray5];//替换一个范围

1 0