NSArray / NSMutableArray
在OC中,我们用’NSArray’类和’NSMutableArray’类来表示数组,其中‘NSArray’类是‘NSMuableArray’类的父类。在OC中,我们的数组是有序的’对象’,即我们的数组只能存储’对象’。在OC中我们的数组中元素类型不能是‘int’、‘float’、‘CGPoint’等类型。
NSArray(不可变数组)
//初始化
//创建一个空的不可变的数组
NSArray *array1 = [[NSArray alloc] init];
NSArray *array2 = [NSArray array];
//创建一个里面只有一个元素的不可变数组
NSArray *array3 = [NSArray arrayWithObjects:@”zhoudu”];
//创建一个里面有多个元素的不可变数组
NSArray *array4 = [NSArray arrayWithObjects:@”zhoudu”,@”xingzhenyu”,@”panzhijing”,@”gugenggeng”, nil];
//新语法
NSArray *array5 = @[@”zhoudu”];
NSArray *array6 = @[@”zhoudu”,@”xingzhenyu”,@”panzhijing”,@”gugenggeng”];
//
NSArray *array7 = [NSArray arrayWithArray:array2];
//从本地文件中读取数组
NSArray *array8 = [NSArray arrayWithContentsOfFile:@""];
//从网络文件中读取数组
NSArray *array9 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];
//求数组中元素的个数
NSInteger count = array6.count;
//数组的操作
//访问数组中的元素
//访问array6中的第一个元素
NSString *str = [array6 objectAtIndex:0];
for (int i = 0; i < array6.count; i ++) {
NSLog(@"数组中第%d个元素为%@",i,[array6 objectAtIndex:i]);
}
//新语法访问数组中的元素
NSString *str2 = array6[0];
//NSNumber类的新语法
NSNumber *number1 = [NSNumber numberWithInt:5];
NSNumber *number2 = @5;
NSNumber *number3 = @YES;
NSArray *array = @[@5,@12];
//通过数组的元素找下标
NSUInteger index = [array6 indexOfObject:@"zhoudu"];
NSLog(@"index = %lu",(unsigned long)index);
//判断数组中是否存在某个元素
BOOL flag = [array6 containsObject:@"zhoudu"];
//向不可变数组中增加一个元素,生成一个新的数组
NSArray *newArray1 = [array6 arrayByAddingObject:@"方剑轻"];
NSArray *newArray2 = [array6 arrayByAddingObjectsFromArray:array6];
NSString *string = [newArray1 componentsJoinedByString:@"^^^___^^^!!"];
NSLog(@"string = %@",string);
NSArray *array11 = @[@"123",@"456",@"789",@"000"];
NSString *string12 = [array11 componentsJoinedByString:@"-"];
NSLog(@"string = %@",string12);
NSMutableArray(可变数组)
//初始化方法
//初始化一个空的可变数组
NSMutableArray *mArray1 = [NSMutableArray array];
NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@”1”];
NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
NSMutableArray *mArray4 = [NSMutableArray arrayWithObject:mArray2];
//可变数组独有的初始化方法
NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];
NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@""];
//在数组末尾增加一个元素
[mArray3 addObject:@"5"];
//在数组指定位置增加一个元素
[mArray3 insertObject:@"vincent" atIndex:3];
//替换,将数组指定位置上的元素替换成用户想要元素
[mArray3 replaceObjectAtIndex:2 withObject:@"sb"];
//交换,将数组指定位置上的两个元素交换位置
[mArray3 exchangeObjectAtIndex:1 withObjectAtIndex:4];
//删除
//删除指定元素
[mArray3 removeObject:@"1"];
//删除指定位置上的元素
[mArray3 removeObjectAtIndex:2];
//删除数组中最后一个元素
[mArray3 removeLastObject];
//删除数组中所有元素
[mArray3 removeAllObjects];
for (NSString *ele in mArray3) {
NSLog(@"ele = %@",ele);
}