#import <Foundation/Foundation.h>
NSInteger intSort(id num1, id num2, void *context);
int main(int argc, const char * argv[]) {
//NSArray 不可变数组常用方法
NSArray *arr = [[NSArray alloc] initWithObjects:@"a", @"andy", @"b", @"c", @"e", @"f", nil];
//OC数组中nil 作为结束标志 不能插入中间
NSArray *arr1 = [NSArray arrayWithObjects:@"wendy", @"andy", @"standy", @"tom", @"jarry" ,nil];
//OC数组只能存放对象 用arr1的对象初始化arr2
NSArray *arr2 = [[NSArray alloc] initWithArray:arr1];
NSLog(@"%@", arr2);
//C数组 转化OC数组
NSString *carr[10] = {@"123", @"456", @"789"};
NSArray *arr3 = [[NSArray alloc] initWithObjects:carr count:3];
NSLog(@"%@", arr3);
//返回数组中第一个该元素的下标,返回值%ld
NSLog(@"%ld", [arr indexOfObject:@"c"]);
//返回数组范围内该元素的下标 0开始
NSRange range = {0,3};
NSLog(@"%ld", [arr indexOfObject:@"a" inRange:range]);
NSLog(@"%ld", [arr indexOfObjectIdenticalTo:@"a"]);
//判断数组中该元素是否存在 返回bool值
NSLog(@"%d", [arr containsObject:@"a"]);
//返回数组中元素个数
NSLog(@"%ld", [arr count]);
//数组中的第一个元素
NSLog(@"%@", [arr3 firstObject]);
//数组中的最后一个元素
NSLog(@"%@", [arr3 lastObject]);
//取数组范围内连续元素赋给新的数组并返回
NSRange range1 = {0, 1};
NSLog(@"%@", [arr3 subarrayWithRange:range1]);
//返回数组中指定坐标下对应的元素
NSLog(@"%@", [arr3 objectAtIndex:1]);
NSLog(@"%@", [arr3 objectAtIndexedSubscript:1]);
//自定义初始化下标
NSIndexSet *index = [[NSIndexSet alloc] initWithIndex:0];
//返回包含原数组中对应该下标元素的新数组
NSLog(@"%@", [arr3 objectsAtIndexes:index]);
//返回对应数组值等于给定对象的第一个下标 0 开始
NSLog(@"%ld", [arr indexOfObject:@"c"]);
//返回对应数组值 在range下标范围内的第一个与给定值相等的值的下标
NSLog(@"%ld", [arr indexOfObject:@"a" inRange:range]);
//查找两数组中第一个相同的元素并返回
NSLog(@"%@", [arr firstObjectCommonWithArray:arr1]);
//判断两数组是否相等 返回值 BOOL
NSLog(@"%d", [arr isEqualToArray:arr1]);
//数组相加
NSLog(@"%@", [arr arrayByAddingObject:arr1]);
//运行结果 (
// a,
// andy,
// b,
// c,
// e,
// f,
// (
// wendy,
// andy,
// standy,
// tom,
// jarry
// )
// )
//数组相加 成一个数组
NSLog(@"%@", [arr arrayByAddingObjectsFromArray:arr1]);
//运行结果(
// a,
// andy,
// b,
// c,
// e,
// f,
// wendy,
// andy,
// standy,
// tom,
// jarry
// )
//返回包含本数组范围内元素的新数组
NSLog(@"%@", [arr subarrayWithRange:range]);
//可变数组定义和常用方法
NSMutableArray *arr7 = [[NSMutableArray alloc] initWithCapacity:30];
NSMutableArray *arr8 = [NSMutableArray arrayWithCapacity:30];
//添加元素
[arr7 addObject:@"123"];
[arr7 addObject:@"456"];
[arr7 addObject:@"qeqwe"];
[arr7 addObject:@"qeqwe"];
[arr7 addObject:@"qeqwe"];
//从其他数组拿出元素添加到本数组
[arr8 addObjectsFromArray:arr7];
[arr8 addObject:@"789"];
[arr8 addObject:@"789"];
[arr8 addObject:@"789"];
[arr8 addObject:@"123dsa"];
[arr8 addObject:@"123dsa"];
[arr8 addObject:@"123dsa"];
[arr8 addObject:@"123dsa"];
NSLog(@"arr7 = %@",arr7);
NSLog(@"arr8 = %@",arr8);
//插入元素
//插入下标的范围: 0<=index<=count
[arr7 insertObject:@"aaa" atIndex:0];
NSLog(@"arr7 = %@",arr7);
[arr7 insertObject:@"bbb" atIndex:[arr7 count]];
NSLog(@"arr7 = %@",arr7);
[arr8 removeLastObject];//删除最后一个元素
NSLog(@"%@", arr8);
[arr8 removeObject:@"789"];//删除指定对象,会将所有对象删除
NSLog(@"%@", arr8);
//删除指定范围中的指定对象
[arr8 removeObject:@"456" inRange:NSMakeRange(0, 2)];
//删除指定下标的元素
[arr8 removeObjectAtIndex:0];
//删除指定范围中得元素
[arr8 removeObjectsInRange:NSMakeRange(0, 2)];
[arr8 removeAllObjects];//删除所有元素
NSLog(@"%@", arr8);
//如果要删除不连续的元素,则先把要删除的元素放在一个清单中,然后再删除该清单
//比如要删下标为偶数的 0开始
NSMutableIndexSet *indexs = [NSMutableIndexSet indexSet];
for (int i = 0; i < [arr7 count]; i++) {
if (i % 2 == 0) {
[indexs addIndex:i];
}
}
//删除清单中得元素
[arr7 removeObjectsAtIndexes:indexs];
NSLog(@"%@", arr7);
// 修改数组中得内容
[arr7 replaceObjectAtIndex:1 withObject:@"aaa"];
NSLog(@"%@", arr7);
return 0;
}