不可变数组
1.定义赋值:
①:NSArray *array = @[@"Q",@"A",@"Q",dog];
②:NSArray *array1 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3",dog, nil];
③:NSArray *array2 = [[NSArray alloc] initWithArray:array1];
【注】不可变数组,指数组对象一旦创建,其元素的个数和顺序不可修改。
NSArray * array = @[@"One One", @"Two", @"Three", @"Four", @"dDD"];
//数组本身是一个对象
//数组的元素如@"One" @"Two" @"Three"等都是任意类的对象,不仅限于字符串。
//创建数组对象时传参,传入对象的地址
//数组中只是存储了对象的地址,而非存储了对象的本体。
//同一个对象可以存储到两个数组当中,仍然是一个对象
//在一个数组中修改了对象,在另一个数组中读取对象,会发现对象也被丢改了。
//遍历打印一个数组
//打印一个数组,就是打印数组的元素
二 : 数组个数
//返回array数组的元素个数
NSUInteger count = [array count];
NSLog(@"%lu", count);
数组分割和拼接和字符串是一样的
数组遍历
第一种 直接打印数组变量名就可以打印数组里面的元素
NSArray *array = @[@"1",@"2",@"3"];
NSLog(@"%@",array);
第二种
//通过索引遍历
for (int i = 0; i < [array count]; i++) {
NSLog(@"%@", array[i]);
}
第三种
//快速枚举法
for (NSString * str in array) {
//第一次循环str指向数组第一个元素,第二次循环,str指向数组第二个元素。。。
NSLog(@"%@", str);
}【注】如果遍历的是可变数组,在for in结束前,不能修改可变数组的元素个数和顺序。
可变数组
NSMutableArray *arrayM = [[NSMutableArray alloc] init];
// 添加数据
[arrayM setArray:@[@"1",@"2",dog]];
NSLog(@"%@",dogArray);
// 添加元素(把元素放在最后)
[arrayM addObject:@"元旦要到了"];
// 插入数据
[arrayM insertObject:@"你们可以去疯了" atIndex:1];
// 删除元素
第一种删法
[arrayM removeObject:@“1”];//@“1”表示的是数组里面的元素
第二种方法
[arrayM removeObjectAtIndex:2];
// 交换元素位置
[arrayM exchangeObjectAtIndex:1 withObjectAtIndex:2];