/数组
//用来存储多个元素,并且每一个元素都是对象, 但是对象的类型不限制
//数组是一个有序的集合,而且数组中可以存放重复元素
//不可变数组
//1创建对象
//(1)使用舒初始化
NSArray *arr1 = [[NSArray alloc] initWithObjects:@"aa", nil, @"bb", @"cc", nil];//nil 作为数组存放元素的结束标志,不能省略.
NSLog(@"arr1 = %@", arr1);
//(2)使用便利构造器
NSArray *arr2 = [NSArray arrayWithObjects:@"bb", @"cc", @"dd", nil];
NSArray *arr3 = @[@"bb", @"cc", @"dd", @"bb", @"cc", @"dd"];
NSLog(@"arr2 = %@, arr3 = %@", arr2, arr3);
//2数组元素个数
NSUInteger count = [arr3 count];
NSLog(@"count = %lu", count);
//3. 获取数组元素
//(1)获取数组中第一个元素
// NSString *object1 = [arr3 objectAtIndex:10];以后取第一个和最后一个元素都不要用这个用下面的一个
// NSLog(@"object1 = %@", object1);
NSString *object1 = [arr3 firstObject];//有第一个元素就返回,没有就返回null
NSLog(@"object1 = %@", object1);
//(2)获取数组中最后一个元素
NSString *object2 = [arr3 lastObject];
NSLog(@"object2 = %@", object2);
//(3)获取数组中第二个元素
// NSString *object3 = [arr3 objectAtIndex:1];
NSString *object3 = arr3[1];
NSLog(@"object3 = %@", object3);
//查找对象
//(1)查看数组中是否包含某一对象
BOOL isExist = [arr3 containsObject:@"aa"];
NSLog(@"isExist = %d", isExist);
//(2)查找某一元素对应的下标
NSUInteger index = [arr3 indexOfObject:@"bb"];
NSLog(@"index = %lu", index);
//5. 排序 只需给定数组中的俩个对象在比较时采用哪种方法
NSArray *orderArr = [arr3 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"orderArr = %@", orderArr);
// 6 对数组遍历
// for (int i = 0;i < [arr3 count]; i++) {
// NSLog(@"%@", [arr3 objectAtIndex:i] );
// }//以后几乎不用,太笨了
//快速遍历
/**
* type 集合(可以存放多个元素)中元素的类型.
object : 对象名
collection : 集合(要遍历的大容器)
statements:语句 (实现内容)
*/
for (NSString *element in arr3) {
NSLog(@"element = %@", element);
}
//======================================
//可变数组.NSMutableArray
//1.创建对象
//(1)初始化方法
NSMutableArray *mutableArr = [[NSMutableArray alloc] initWithCapacity:3];
//(2)遍历构造器
NSMutableArray *mutableArr1 = [NSMutableArray arrayWithCapacity:3];
//2 添加元素
mutableArr = [NSMutableArray arrayWithObjects:@"Duck", @"lanou", @"henan", nil];
[mutableArr addObject:@"Frank"];
NSLog(@"mutableArr = %@", mutableArr);
//3 移除元素
//(1) 移除给定的对象
[mutableArr removeObject:@"Duck"];//移除所有给定的元素
//(2)根据下标移除对象
[mutableArr removeObjectAtIndex:1];
NSLog(@"mutableArr = %@", mutableArr);
//(3)移除所有对象
[mutableArr removeAllObjects];
NSLog(@"mutableArr = %@", mutableArr);
//4 指定位置插入元素
[mutableArr insertObject:@"xiaoYang" atIndex:0];
NSLog(@"mutableArr = %@", mutableArr);
[mutableArr insertObject:@"xiaoYang" atIndex:0];
[mutableArr insertObject:@"xiaoYang" atIndex:0];
[mutableArr insertObject:@"xiaoYang" atIndex:0];
//5 交换自定位置上的元素
[mutableArr exchangeObjectAtIndex:0 withObjectAtIndex:3];
//6 替换数组中的指定元素
[mutableArr replaceObjectAtIndex:2 withObject:@"xiaoning"];
NSLog(@"mutableArr = %@", mutableArr);
//7 对数组进行排序
[mutableArr sortUsingSelector:@selector(compare:)];
NSLog(@"mutableArr = %@", mutableArr);
//8 重置数组
[mutableArr setArray:arr3];
//用来存储多个元素,并且每一个元素都是对象, 但是对象的类型不限制
//数组是一个有序的集合,而且数组中可以存放重复元素
//不可变数组
//1创建对象
//(1)使用舒初始化
NSArray *arr1 = [[NSArray alloc] initWithObjects:@"aa", nil, @"bb", @"cc", nil];//nil 作为数组存放元素的结束标志,不能省略.
NSLog(@"arr1 = %@", arr1);
//(2)使用便利构造器
NSArray *arr2 = [NSArray arrayWithObjects:@"bb", @"cc", @"dd", nil];
NSArray *arr3 = @[@"bb", @"cc", @"dd", @"bb", @"cc", @"dd"];
NSLog(@"arr2 = %@, arr3 = %@", arr2, arr3);
//2数组元素个数
NSUInteger count = [arr3 count];
NSLog(@"count = %lu", count);
//3. 获取数组元素
//(1)获取数组中第一个元素
// NSString *object1 = [arr3 objectAtIndex:10];以后取第一个和最后一个元素都不要用这个用下面的一个
// NSLog(@"object1 = %@", object1);
NSString *object1 = [arr3 firstObject];//有第一个元素就返回,没有就返回null
NSLog(@"object1 = %@", object1);
//(2)获取数组中最后一个元素
NSString *object2 = [arr3 lastObject];
NSLog(@"object2 = %@", object2);
//(3)获取数组中第二个元素
// NSString *object3 = [arr3 objectAtIndex:1];
NSString *object3 = arr3[1];
NSLog(@"object3 = %@", object3);
//查找对象
//(1)查看数组中是否包含某一对象
BOOL isExist = [arr3 containsObject:@"aa"];
NSLog(@"isExist = %d", isExist);
//(2)查找某一元素对应的下标
NSUInteger index = [arr3 indexOfObject:@"bb"];
NSLog(@"index = %lu", index);
//5. 排序 只需给定数组中的俩个对象在比较时采用哪种方法
NSArray *orderArr = [arr3 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"orderArr = %@", orderArr);
// 6 对数组遍历
// for (int i = 0;i < [arr3 count]; i++) {
// NSLog(@"%@", [arr3 objectAtIndex:i] );
// }//以后几乎不用,太笨了
//快速遍历
/**
* type 集合(可以存放多个元素)中元素的类型.
object : 对象名
collection : 集合(要遍历的大容器)
statements:语句 (实现内容)
*/
for (NSString *element in arr3) {
NSLog(@"element = %@", element);
}
//======================================
//可变数组.NSMutableArray
//1.创建对象
//(1)初始化方法
NSMutableArray *mutableArr = [[NSMutableArray alloc] initWithCapacity:3];
//(2)遍历构造器
NSMutableArray *mutableArr1 = [NSMutableArray arrayWithCapacity:3];
//2 添加元素
mutableArr = [NSMutableArray arrayWithObjects:@"Duck", @"lanou", @"henan", nil];
[mutableArr addObject:@"Frank"];
NSLog(@"mutableArr = %@", mutableArr);
//3 移除元素
//(1) 移除给定的对象
[mutableArr removeObject:@"Duck"];//移除所有给定的元素
//(2)根据下标移除对象
[mutableArr removeObjectAtIndex:1];
NSLog(@"mutableArr = %@", mutableArr);
//(3)移除所有对象
[mutableArr removeAllObjects];
NSLog(@"mutableArr = %@", mutableArr);
//4 指定位置插入元素
[mutableArr insertObject:@"xiaoYang" atIndex:0];
NSLog(@"mutableArr = %@", mutableArr);
[mutableArr insertObject:@"xiaoYang" atIndex:0];
[mutableArr insertObject:@"xiaoYang" atIndex:0];
[mutableArr insertObject:@"xiaoYang" atIndex:0];
//5 交换自定位置上的元素
[mutableArr exchangeObjectAtIndex:0 withObjectAtIndex:3];
//6 替换数组中的指定元素
[mutableArr replaceObjectAtIndex:2 withObject:@"xiaoning"];
NSLog(@"mutableArr = %@", mutableArr);
//7 对数组进行排序
[mutableArr sortUsingSelector:@selector(compare:)];
NSLog(@"mutableArr = %@", mutableArr);
//8 重置数组
[mutableArr setArray:arr3];