OC菜鸟成长记-OC中的数组创建和操作
2015-08-18 14:02
423 查看
在OC中,数组分为两种:不可变数组(NSArray) 和 可变数组(NSMutableArray)。根据自己的认识,笔者在下面对OC中的数组进行一下总结。
首先是不可变数组(NSArray):
// NSArray
//初始化
NSArray *array =[[NSArray alloc]init];
NSArray *array1 = [NSArray arrayWithObjects:@"a",@"b",@"c", nil];
//新语法
NSArray *array2 =@[@"a",@"b",@"c"];
NSArray *array3 =[NSArray arrayWithArray:array1];
//操作
//历遍某一个元素
NSString *arrStr = [array1 objectAtIndex:0];
//历遍数组
for (int i=0; i<array1.count; i++) {
NSLog(@"%d:%@",i,[array1 objectAtIndex:i]);
}
//利用枚举器进行历遍
//先初始化一个枚举器
NSEnumerator *enumerator = [array1 objectEnumerator];
id obj;
while (obj =[enumerator nextObject]) {
NSLog(@"%@",obj);
}
//快速历遍
//id obj;
for (obj in array1) {
NSLog(@"%@",obj);
}
//添加元素
NSArray *array4 = [array3 arrayByAddingObjectsFromArray:array2];
NSArray *array5 = [array3 arrayByAddingObject:@"d"];
NSLog(@"array4 = %@,array5=%@",array4,array5);
运行结果如下:
oc_731_practise[17787:164553] 0:a
oc_731_practise[17787:164553] 1:b
oc_731_practise[17787:164553] 2:c
oc_731_practise[17787:164553] a
oc_731_practise[17787:164553] b
oc_731_practise[17787:164553] c
oc_731_practise[17787:164553] a
oc_731_practise[17787:164553] b
oc_731_practise[17787:164553] c
oc_731_practise[17787:164553] array4 = (
a,
b,
c,
a,
b,
c
),array5=(
a,
b,
c,
d
)
然后是可变数组(NSMutableArray):
// NSMutableArray
//初始化
NSMutableArray *marray1 =[NSMutableArray array];
marray1 =[NSMutableArray arrayWithArray:array1];
//插入元素
[marray1 insertObject:@"diao" atIndex:2];
//替换
[marray1 replaceObjectAtIndex:0 withObject:@"z"];
//交换
[marray1 exchangeObjectAtIndex:0 withObjectAtIndex:2];
//删除
[marray1 removeLastObject];//删除最后一个
[marray1 removeObject:@"z"];//删除指定元素
[marray1 removeAllObjects];//删除全部元素
//利用枚举器历遍
//初始化
NSEnumerator *enumerator1 =[marray1 objectEnumerator];
//使用while循环历遍
id obj1;
while (obj1 = [enumerator1 nextObject]) {
NSLog(@"%@",obj1);
}
首先是不可变数组(NSArray):
// NSArray
//初始化
NSArray *array =[[NSArray alloc]init];
NSArray *array1 = [NSArray arrayWithObjects:@"a",@"b",@"c", nil];
//新语法
NSArray *array2 =@[@"a",@"b",@"c"];
NSArray *array3 =[NSArray arrayWithArray:array1];
//操作
//历遍某一个元素
NSString *arrStr = [array1 objectAtIndex:0];
//历遍数组
for (int i=0; i<array1.count; i++) {
NSLog(@"%d:%@",i,[array1 objectAtIndex:i]);
}
//利用枚举器进行历遍
//先初始化一个枚举器
NSEnumerator *enumerator = [array1 objectEnumerator];
id obj;
while (obj =[enumerator nextObject]) {
NSLog(@"%@",obj);
}
//快速历遍
//id obj;
for (obj in array1) {
NSLog(@"%@",obj);
}
//添加元素
NSArray *array4 = [array3 arrayByAddingObjectsFromArray:array2];
NSArray *array5 = [array3 arrayByAddingObject:@"d"];
NSLog(@"array4 = %@,array5=%@",array4,array5);
运行结果如下:
oc_731_practise[17787:164553] 0:a
oc_731_practise[17787:164553] 1:b
oc_731_practise[17787:164553] 2:c
oc_731_practise[17787:164553] a
oc_731_practise[17787:164553] b
oc_731_practise[17787:164553] c
oc_731_practise[17787:164553] a
oc_731_practise[17787:164553] b
oc_731_practise[17787:164553] c
oc_731_practise[17787:164553] array4 = (
a,
b,
c,
a,
b,
c
),array5=(
a,
b,
c,
d
)
然后是可变数组(NSMutableArray):
// NSMutableArray
//初始化
NSMutableArray *marray1 =[NSMutableArray array];
marray1 =[NSMutableArray arrayWithArray:array1];
//插入元素
[marray1 insertObject:@"diao" atIndex:2];
//替换
[marray1 replaceObjectAtIndex:0 withObject:@"z"];
//交换
[marray1 exchangeObjectAtIndex:0 withObjectAtIndex:2];
//删除
[marray1 removeLastObject];//删除最后一个
[marray1 removeObject:@"z"];//删除指定元素
[marray1 removeAllObjects];//删除全部元素
//利用枚举器历遍
//初始化
NSEnumerator *enumerator1 =[marray1 objectEnumerator];
//使用while循环历遍
id obj1;
while (obj1 = [enumerator1 nextObject]) {
NSLog(@"%@",obj1);
}
相关文章推荐
- array 排序
- NSData和NSMutableData
- NSArray的排序和乱序
- 字面量语法的好处
- 黑马程序员----OC学习笔记之NSArray
- Object-c之不可变数组
- Object-c之可变数组
- ios 打印出所有的字体
- 【学习中的分享】 iOS利用UILabel和UIButton制作一个简单的计算器
- NSArray 演示(无注释)
- ios开发极易犯的错误
- NSString NSArray的用法
- 渣蜀黍 - iOS 个人笔记(一)_数据处理
- 黑马程序员——入学Blog04----OC的构造方法
- 黑马程序员-ios学习笔记 Foundation 中的 NSArray
- UITableView的Cell排序
- Fundation框架(Er)--数组对象常用的处理方法
- Foundation框架(YI)--数字对象和字符串对象常用的处理方法
- Foundation框架(YI)--数字对象和字符串对象常用的处理方法
- Objective-C中NSArray类的解读