什么是数组?
- 数组是一个有序的集合,OC中的数组只能存储对象类型,但是对于对象的类型没有限制。
- 我们可以通过下标去访问数组元素,下标从0开始。
- NSArray:是不可变数组,也就是对象创建好以后,数组中的元素个数不能发生变化。
- NSMutableArray:可变数组,即对象创建好以后,数组中的元素可以灵活的进行增删改操作。
- 下面来初始化一个数组
- 注:nil作为数组存放元素的结束标志,多个元素通过逗号间隔。
//初始化数组
NSArray *number = [[NSArray alloc] initWithObjects:@"one",@"two",@"three", nil];
- 也可以写成便利构造器的形式
//便利构造器
NSArray *number1 = [NSArray arrayWithObjects:@"one",@"two",@"three", nil];
- 还可以写成字面量形式
//字面量形式
NSArray *number2 = @[@"one",@"two",@"three"];
NSArray常用方法
//元素个数
NSInteger count = number.count;
NSLog(@"%ld",(long)count);
//获取数组中指定下标对应的元素
NSArray *arr1 = [number2 objectAtIndex:1];
NSLog(@"%@",arr1);
//返回元素的下标
NSUInteger loc = [number2 indexOfObject:@"three"];
NSLog(@"%ld",loc);
//用来判断数组中是否包含某一个给定的对象
if ([number2 containsObject:@"one"]) {
NSLog(@"包含此元素");
}else {
NSLog(@"不包含此元素");
}
//按照给定的字符串进行截取,将截取的多段字符串放入数组中
NSString *string = @"www.baidu.com";
NSArray *array = [string componentsSeparatedByString:@"."];
NSLog(@"%@", array);
//将数组中的元素按照给定的字符串格式拼接成一个完整的字符串对象
NSArray *array1 = @[@"北京", @"大连", @"河南", @"上海", @"广州", @"西安"];
NSString *string1 = [array1 componentsJoinedByString:@"&"];
NSLog(@"%@",string1);
NSMutableArray概述
NSMutableArray是OC中的可变数组,NSMutableArray的父类是NSArray,具有NSArray所有的方法,同时在NSArray的基础上添加了对自身对象增删改的操作。
- NSMutableArray的创建
//初始化方法
NSMutableArray *name = [[NSMutableArray alloc] initWithCapacity:0];
//便利构造器
NSMutableArray *name1 = [NSMutableArray arrayWithCapacity:0];
//字面量
NSMutableArray *name2 = [@[@"frank", @"duck", @"monkey", @"cow"] mutableCopy];
- NSMutableArray常用操作
//数组中添加一个对象
[name2 addObject:@"cat"];
//数组中指定位置插入一个对象
[name2 insertObject:@"dog" atIndex:1];
NSLog(@"%@",name2);
//数组中移除一个对象
[name2 removeObject:@"cat"];
NSLog(@"%@",name2);
//移除数组中最后一个对象
[name2 removeLastObject];
//移除数组中所有的元素
[name2 removeAllObjects];
//数组中移除指定位置的元素
[name2 removeObjectAtIndex:2];
//使用指定的对象替换指定位置的对象
[name2 replaceObjectAtIndex:2 withObject:@"hhhh"];
//交换指定的两个下标对应的对象
[name2 exchangeObjectAtIndex:1 withObjectAtIndex:2];
NSLog(@"%@",name2);