您的位置:首页 > 其它

课堂笔记09

2015-08-03 11:14 323 查看

NSArray / NSMutableArray 可变数组和不可变数组

在 OC 中我们用 ‘NSArray’ 类和 ‘NSMutableArray’ 类来表示数组,其中 ‘NSArray’ 类是 ‘NSMutableArray’ 类的父类,在 OC 中,我们的数组是有序的 ‘对象’ 的集合。即我们的数组只能存储 ‘对象’ 。在 OC 中,我们的数组中元素类型不能是 ‘int’ , ‘float’,‘CGPoint’等类型。


NSArray

//1、初始化
//        NSArray *array = [NSArray new];
NSArray *array0 = [[NSArray alloc] init];
//等效于
NSArray *array1 = [NSArray array];

//创建一个里面只有一个元素的不可变数组
NSArray *array2 = [NSArray arrayWithObject:@"haha"];
//创建一个里面有多个元素的不可变数组
NSArray *array3 = [NSArray arrayWithObjects:@"haha",@"hehe",@"xixi",@"enen", nil];

//新语法
NSArray *array4 = @[@"haha"];
NSArray *array5 = @[@"haha",@"hehe",@"xixi",@"enen"];

//从另一个数组中创建一个数组
NSArray *array6 = [NSArray arrayWithArray:array2];

//从本地文件中读取数组
NSArray *array7 = [NSArray arrayWithContentsOfFile:@""];
//从网络文件中读取数/Users/5002/Desktop/cyq/OC/OC_09/OC_09/main.m组
NSArray *array8 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];


数组的属性

//求数组中元素的个数
NSUInteger count = array5.count;


数组的操作

//访问数组中的元素
//访问array6中的第一个元素
NSString *st1 = [array5 objectAtIndex:0];
for(int i = 0 ;i < array5.count;i++){
NSLog(@"数组中第%d个元素为%@",i,[array5 objectAtIndex:i ]);
}

//新语法访问数组中的元素
NSString *st2 = array5[1];//适配系统

//NSNumber类的新语法
NSNumber *number1 = [NSNumber numberWithInt:5];
//等效与
NSNumber *number2 = @5;
NSNumber *number3 = @YES;


通过数组中的元素找下标

NSUInteger index = [array5 indexOfObject:@"hehe"];
NSLog(@"index = %lu",(unsigned long) index);
//判断数组中是否存在某个元素
BOOL flag = [array5 containsObject:@"hehe"];


//向不可变数组中增加一个元素,生成一个新的数组;
NSArray *newarray1 = [array5 arrayByAddingObject:@"gaga"];
NSArray *newarray2 = [array5 arrayByAddingObjectsFromArray:array5];//在该数组上在加上一个数组,都是在末尾加。
NSString *string = [newarray1 componentsJoinedByString:@"^--^!!"];
NSLog(@"string = %@",string);

NSArray *array9 = @[@"123",@"456",@"789",@"000"];
NSString *string1 =[array9 componentsJoinedByString:@"-"];//通过‘-’将数组连接起来
NSLog(@"%@",string1);
NSArray *string2 = [string1 componentsSeparatedByString:@"-"];
string1 = [string2 componentsJoinedByString:@""];
NSLog(@"%@",string1);


可变数组 ‘NSMutableArray’ 为 ‘NSArray’ 的子类,即上述所使用API对于可变数组都是适用的

//初始化方法
//初始化一个空的数组
NSMutableArray *marray1 = [NSMutableArray array];
NSMutableArray *marray2 = [NSMutableArray arrayWithObject:@"1"];
NSMutableArray *marray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
NSMutableArray *marray4 = [NSMutableArray arrayWithArray:marray2];
//可变数组独有的初始化方法
NSMutableArray *marray5 = [NSMutableArray arrayWithCapacity:10];

NSMutableArray *marray6 = [NSMutableArray arrayWithContentsOfFile:@""];
NSMutableArray *marray7 = [NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];


//增加
//在数组的末尾增加一个元素
[marray3 addObject:@"5"];
//在数组的指定位置增加一个元素
[marray3 insertObject:@"6" atIndex:3];


//替换
//将数组指定位置上的元素替换成用户想要的元素
[marray3 replaceObjectAtIndex:2 withObject:@"sb"];


//交换
//将数组指定位置上的两个元素交换位置
[marray3 exchangeObjectAtIndex:1 withObjectAtIndex:4];
for (NSString *ele in marray3) {//数组的遍历
NSLog(@"ele = %@",ele);
}


//删除
//删除指定元素
[marray3 removeObject:@"1"];
//删除指定位置上的元素
[marray3 removeObjectAtIndex:2];
//删除数组中所有元素
[marray3 removeAllObjects];
//删除数组中最后一个元素
[marray3 removeLastObject];


//遍历数组
/*
<#type *object#> //要求统一,不统一的话用id
*/
for (NSString *ele in marray3) {
NSLog(@"ele = %@",ele);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: